Skip to content ↓
MIT student blogger Erick P. '17

Learn Coding Before School Starts by Erick P. '17

you've got one month left. go!

Learn Coding Before School Starts
#by Erick ’17

def intro():
print(“Learning your first coding language can be really hard. By your second language, it gets slightly easier. Your third language? Okay now it’s easy. Your fourth? Took less than a day. Fifth. Sixth. You get the idea.\n”)
print(“Why the exponential growth? Learning coding consists of two parts. 1) concepts. 2) syntax. With your first language, you have to learn the concepts of coding. What coding is, how you literally have to tell the computer what to do step by step, what variables, etc. Then, you learn the syntax. In Python, whitespace matters. In Java, just be sure you have brackets. You write expressions differently but the core concepts are the same. So with each additional language you learn, it gets easier as you just have to adopt a new syntax.\n”)
print(“So how do you start? Do you pick up a textbook? Watch videos? Take a course? Let me share with you how I started coding and then give you some resources so you can too.\n”)

def history():
print(“***A Brief History of Coding***”)
elementary = [Elementary school – I got a book on HTML from the library. I made a few HTML pages, but they were mostly text, links, and pictures. So I made an account on Freewebs to built my first website using their drag-and-drop website builder. I also got a Lego Mindstorms Kit to build and program Lego robots. This was when I first learned the word ‘variable’.”]
middle = [Middle school – I made games using the drag-and-drop GameMaker program, modifying some scripts using a their proprietary language.”]
highschool = [High school – I learned how to purchase a domain name and hosting space. I set up my personal website with WordPress.”,”High school senior year – I took the 6.189 Intro to Python course on MIT OpenCourseWare. I did a few lessons before stopping to have time to study for the SAT Subject Tests.”]
freshman = [“Freshman fall – In my MAS.110 Fundamentals of Computational Media Design class, we used Scratch’s drag-and-drop coding to make 3D animations.”,Freshman IAP – I took a two day class taught by Microsoft, learning how to program games with Unity’s drag-and-drop interface. They taught us how to make slight modifications using C# scripts. It reminded me a lot of GameMaker. Also, my dad got me my first Arduino kit for Christmas, so I put together my first Arduino bot and learned some basic commands on C++.”,“Freshman summer – I wanted to learn app development so I downloaded Eclipse and got a book on Java. I made it through the first two chapters before I got interested in doing other things.”]
sophomore = [“Sophomore fall – I took 6.01 Introduction to Electrical Engineering & Computer Science. They assume you know Python, which made the class rough since I didn’t know any. I spent the first few weeks learning Python on top of everything else the class assigned. By the end of the semester the assignments became more project based, like programming the robot to navigate through a maze, and I started to get the hang of Python. I started getting the hang of Python along with everything else the class taught. I was also a co-web developer of the MIT Ring Committee 2017. I didn’t know much actual coding web design, so my co-web developer Casie ’17 built the website from scratch and I added things here and there while managing the social media pages.”,”Sophomore IAP – I took 16.682 Momentum, a month long IAP course taught by the Office of Minority Education. This year’s theme was Brain-Computer Interfaces and we build a robot arm that you can control by flexing your muscles. This is where I really sat down and learned C++. Our team really wanted our robot to move smoothly and efficiently, so we spent days rewriting the code to make it simpler and more robust.”,Sophomore spring – I UROPed at the MIT Media Lab working on the CityScope project. We built dynamic city models out of Lego that can have data projected onto them like weather patterns, traffic, and even where people are tweeting from. We used Processing to write the software, which used C++. Since I had just spent a month learning C++, it was easy to transfer over. I also took a seminar MAS.S64 EdibleBYTES, where we built mini-fridge sized hydroponic boxes that could grow crops inside. A classmate and I redesigned the sensor system. We used a breadboard and sensors from Seeed Studio so that it was easily customizable and all open source. We used an Arduino, so I got more practice in C++.”]
summer_this = [Sophomore Summer – I had an app idea. So I downloaded Android Studio again and committed to building an app. I made huge progress, designing the layout in XML files while coding the Java files for the intents and actions. I even learned SQL to store the user’s data online in a MySQL table so they can log onto their account from another device.”,Two Weeks Later – My app was almost finished, and I started getting back into web development. I wanted to rebuild my website with my own custom theme. I installed the Genesis Framework onto my original WordPress installation, which uses PHP to code the website and CSS to style it. I made a template for my own website and for my Tech 101 4 Kids website.”,This past week – Now more confident in my coding, I went back into the RingComm site and made some edits and added more pictures. As the technology chair for my fraternity Phi Kappa Sigma, I’m also now embarking on the project of redesigning our website to prepare it for Rush. I learned about the Apache Web server and how to SSH into the website to modify it with PHP scripts.”]
for x in range(len(history)):
for y in range(len(history[x])):

def paragraphtwo():
print(“Does this sound advanced? It would’ve sounded advanced to me if I was reading this less than a year ago. But everyone starts somewhere.\n”)
print(“There’s a key difference in the times when I failed and when I succeeded. When I said to myself ‘I want to learn app development’ or ‘I want to learn C++’ I committed to it by getting a book from the library or signing up on a website, did two or three lesssons, then quit. I wasn’t getting anywhere, and each time I started a new tutorial, I would start again at lesson 1.\n”)
print(“When I started focusing on projects was when I really started learning coding. For you it may be different, but if you think you might be in my boat, then here’s some advice.\n”)

def advice(a,b,c):
print(a,“If you’ve done lesson 1 anywhere else, don’t do it again. Start as far ahead as you think you can handle and if it ends up being too hard, then go back. You have a limited amount of time and you want to spend it learning new things, not reviewing the old things over and over again. These are tutorials, there are no penalties if you don’t get it right on your first try. I suggest you look at Codecademy, Khan Academy, and MIT OpenCourseWare. All three have a wealth of guides on coding. Pick a language and pick a tutorial, preferably a project-based one because “, b,”Don’t start another until you’ve finished.\n”)
print(b,“Learning Java was a very intangible goal for me. How did I know when I learned enough? When could I say I was proficient in Java? At first, after finishing a tutorial or a class on a language, I would test myself using This website was recommended to me by my fraterniy brother Rosé ’17. It really helped me get a sense of how much coding I knew based on how many problems I could solved.”)
print(b,“The next thing to do is just projects. Make things. When I approaced Android app development learning by doing tutorials, I didn’t get anywhere. But when I approaced it with an app idea, I coded what I knew then looked up guides on the parts I was stuck on, which kept me going and expanding my knowledge.\n”)
print(c,“Not for actual cheating, but for when you’re working at home and just can’t remember what the syntax is. It could be an online syntax reference guides you’ve bookmarked, or it can be something printable like these cheat sheets my friend Kenny ’17 made, which I highly recommend.\n”)

def final():
finalthoughts = [“Do you need to know coding before coming to MIT? Nope, you don’t. It’s nice to know though, because MIT gives you many of resources like offering you hosting space where you can store and run your scripts, permanent IP addresses you can access from anywhere, a web address formed from your Kerberos, etc. If you’re Course 6, then during your first IAP there’s coding classes you can take like 6.189 Intro to Python to get up to speed for 6.01 in the fall. Even if you’re not Course 6 you can still take the class or the newer 6.0001 half-semester Intro to Computer Science and Programming in Python. And now there’s a new 6.S04 Fundamentals of Programming Class to get a more solid programming foundation after taking 6.0001 or 6.01.\n”]
finalthoughts.append(“So why learn coding now? If you learn it now, you could spend your IAP doing something else like participating in iOS game competition. 6.189 takes up the entire month. You could also just start coding things for fun. Like everything else, coding is one of the many ways people express themselves here and build cool stuff. Some students build their own websites where they blog and talk about their projects at MIT. Others code web apps that end up becoming really useful, like CourseRoad. Some develop and published cool mobile apps. Others take their projects to hardware. At our fraternity, we’ve coded LED lights in our party room to flash to music.\n”)
finalthoughts.append(“Also, if you have a younger sibling who also wants to get into coding, read my super informative blog post Best Free Coding Websites for Kids on Tech 101 4 Kids”)
finalthoughts.append(“I hope you found this fun and informative. Go out there and start coding. But not today. Today is the best day ever in the universe, so it’s time to celebrate. With cake.”)

advice(“Skip Lesson 1. “,”Set project-based goals. “,”Have syntax cheat sheets. “)