Editor’s note: Junwei joined us in January to learn about programming—he had been accepted to a Data Science programme at NUS, and was fairly new to coding. We passed him our notes and slides, got him to sit in (and help out with) a lesson, and took him on as an intern shortly after. Problem is, we didn’t have much data science problems to solve, so Junwei had to learn some more. Here’s his story.
Finishing my national service in December with time to kill before starting university, this internship gave me many opportunities to learn. With a place in Data Science and Analytics at NUS, I had been learning the basics of coding by myself in my free time in NS. I was looking for a place to offer guidance and the opportunity to apply and practise what I have learned. Interning at Tinkertanker gave me just that, in addition to the experience of working at a tech company. Tinkertanker is a great place for interns to learn, apply, and contribute.
Tinkertanker allowed me to start in a “learner” role when I first joined. They shared with me the many resources they have and allowed me to learn the relevant and necessary skills. Previously having learned coding on my own, this helped to fill in some gaps in my knowledge. In my time here, these were some things I learned:
- The Python programming language, and relevant libraries for data science, such as Pandas, Matplotlib, and Numpy.
- Web development in Python using Flask, and front-end web design using HTML and CSS.
- Working with SQL databases in Python.
- Using and creating APIs in web development, and using external APIs for data visualisation.
With these skills, I worked on the following projects for Tinkertanker’s education programmes arm, Tinkercademy:
- Assisted at a Python for Business course for adult learners.
- Developed curriculum and example apps for a Web and Mobile certification programme.
- Updated and edited a Jupyter Notebook script, for grading applicants to the Swift Accelerator Programme.
- Created a Flask web app for analysing class exit surveys done on the Wufoo survey platform
- Created demo Flask projects for teacher training
Python for Business
Helping as an assistant for the Python for Business course allowed me to become more familiar with the basics of Python libraries like pandas and matplotlib for data analysis and visualisation. My role was to help answer questions and troubleshoot issues in the class during the lesson. It was a good way to apply the things I learned, ensuring that I will remember and fully understand.
Web and Mobile Certification Curriculum
I worked on creating curriculum and demo apps for various modules, mainly Flask and SQL, of this web and mobile certification curriculum—you can take a look at the GitHub repositories with demo projects here and here.
Before starting on this project, I had to learn SQL, HTML, CSS, and Flask. Tinkertanker offered me the resources to learn all this as well as guidance if I had any problems. For the web course, I helped to develop slides on teaching introduction to databases, using relational databases, and introducing SQL syntax to beginners. For the mobile course, I mainly worked on curriculum for creating Flask back-ends for mobile apps. This would involve having learners create an app with a SQLite database to store data for their mobile apps, as well as an API that would their mobile apps would then communicate with.
These projects required me to create the apps that students had to learn, which allowed me to combine and apply all that I learned.
Swift Accelerator Grading Script
For this, I helped to edit and update the script to this year’s selection test. The script was written in Python, with the Pandas library, in Jupyter Notebook. The goal was to score each individual student and return some statistics of the test using the test responses on a CSV file. This required some sorting and cleaning of the data. I was also tasked to add comments to the code to better allow the use of the script in future years. Doing this project was a good way to allow me to further apply what I had learned on Python and Pandas.
Flask Web App for Wufoo Class surveys
https://ttswiftexitsurvey.glitch.me/
This project, which you can see on Glitch, required me to create a web app utilising webhooks for the Wufoo service, to consolidate survey responses from a class. The goal was to have a place to easily track the progress of the students in the class and how the lessons are going.
I used Flask to create the web app, and had to create an API and database as well as using a little bit of the Pandas library. Like the other projects I worked on, this allowed me to consolidate and use the different things I learned and apply them to create a working web app with actual real-life utility for the instructors.
Demo Apps for Flask Teacher Training
This consisted of 2 demo apps, a GPA Calculator app and a blog app. These were great for practice—the GPA calculator is a simple web app that allows the user to key in scores and weightages of their tests, returning them the final score; the blog app was another simple app that allowed users to upload posts containing pictures and documents to be shown on a page like a blog.
The 5 months I spent at Tinkertanker has been amazing. I am thankful for the guidance of all the staff and the opportunity to learn and to apply programming.