How I Learned to Code

Ive been coding for five years and have gone from not knowing how to open a command prompt, to coding apps, and getting paid to create mobile apps. So if the definition of ‘professional’ means getting paid to do a hobby, than color me pro.

I will layout the path I took. This path doesn’t include any college credits or anything like that. You can consider this a syllabus for the total noob; to go from knowing nothing to advanced in a relatively short period of time. Ive been hesitant to give away my path, because I thought people would be able to execute quicker and gain an edge over me.

But then I realized, who ever puts in the work can get this. And most people are unwilling to grind, so without further ado, here is my syllabus in chronicle order that made me proficient in coding/program.

Install Linux

The first thing is to learn how to install Ubuntu, which is a distribution of Linux. The video I stumbled upon was this girl instructing me how to install the operating system. The video titled “Learn How to Install Linux in 5 minutes” preyed on my sense of urgency. Here is the video.

After installing Ubuntu and Linux, I installed Linux on every computer I owned, totally breaking free from Legacy operating systems such as Windows and Mac. This forced me to use Linux on a daily basis and getting semi familiar with the operating system… even if it was just at a GUI level. The command prompt was still a foreign entity to me at this point. Like literally, I was getting frustrated with the concept of ‘sudo’ and the fact I couldnt install anything without the command line.

Ermin Kreponic’s Ethical Hacking Course

The next item, spoke to my love of sneakiness. Everyone hears about hackers, and how they are sort of ‘god’ like to the non-tech savvy. Everyone wants to be able to hack accounts of people they know to gain insight into how they think. It’s basically like reading a person’s mind… and who wouldn’t want that super power. So I saw this item for sale, asked a friend who internet-ed for a living if it was a good course to take, and he said verbatim “its a good starting point”.

So, stupidly, I paid $90.00 for this course on Udemy because I had no idea about the coupons and sales they have that drop the price to $10.00. So a word to the wise, make sure to search for coupons, and deals… and NEVER pay full price for a course. The course I took was this.

This course is great on two fronts. The first being that it teaches you how to use virtualization software and install Kali Linux on said virtual machine. And while you use Kali, you learn different commands, and processes, that become ingrained to muscle memory as you work your way through the course.The instructor really holds your hand, which was perfect for the noob like me. The second front, is that it opens your mind to all aspects of computing, because you learn different systems to exploit, which is a great primer on how to FSU as well as how things work.

So after going through the course once, I went through it again, and then again, then I did all the exploits on my own without the help of the video tutorials, just to make sure I memorized everything.


After subscribing to /r/hacking on reddit, and asking questions on that subreddit, and within the hacking course, I started looking for public syllabus’s from college university’s that taught Computer Science. And luckily, I stumbled upon a site called agupieware. The blog actually outlined a Computer Science degree, but with free courses, instead of paid. The blog can be found here.

MIT’s 600.1 With Heavingly Prof. John Guttag

The first, and only item I took from the aGupieWare blog was MIT’s “Introduction to Computer Science and Programming” . This course is taught by a really cool professor named John Guttag. He seemed prestigious and you really felt like you were in a MIT course, even though you are just basically watching Youtube videos. So I went through this course a couple times, ensuring I learned every topic he taught.. such as recursion, for loops, Big O notation, and completed all the problem sets.

At first, the problem sets made no sense, but after the third go-round, things started clicking for me, and there was nothing in the course I didn’t understand.

Automate The Boring Stuff

Because the MIT course was taught in Python, the next course I took was Al Sweigart’s Automate the Boring Stuff on Udemy. This course let you use the information you learned in MIT’s 601, in a more practical way that allowed you make useful programs, instead of creating answers to MIT problem sets. This course introduces you to automation technology such as Selenium and PYAutoGUI. Having this information really sets you apart from Computer Science majors, because you build practical applications instead of learning how to tune algorithms.

After learning the skills Al Sweigart, I went straight to and marketed myself as a Python developer. After weeks of pitching proposals, someone finally hired me to make them some automation software that scraped information from dating sites and sent messages to the relevant woman that met the buyer’s criteria. The code was horrible, but it worked, and I was paid $60.00 USD. Awesome!

Kevin Skoglund’s Essential PHP Courses

After ATBS, I dabbled in Python but still felt limited in my abilities. Mainly, because I couldn’t build a website or app. All I could do was just script in Python. So the next course was one of the most important in my development. And that course was Kevin Skoglund’s PHP with MySQL Essential Training on This course was pretty challenging for the beginner like myself, but definitely the most rewarding. The course covers topics such as PHP, and building Content Management Systems with the language. And even more importantly, it teaches you how PHP and MySQL can be meshed together to create awesome applications.

So, once again, after going through this course 2-3 times, making sure I understood every thing the instructor was teaching, I graduated to his Object Oriented course. Now if you took the MIT course, you would have noticed Prof. Guttag’s love of Object Oriented programming. So, you had a  sense of, “ok if I understand object oriented programming, ill be on par with students at MIT”. So while this is wildly UNTRUE, if its a lie you have to tell yourself to keep going, its kosher.

Kevin Skoglud’s Object Oriented Courses

So, once again, again, I went through this course 4-5 times, making sure I could code everything the instructor did without the help of the videos.

In total, I spent 40 hours on Kevin Skoglund’s courses. While the content only amounts to around 15 hours, for me, it took 40, just because I’m like Derrick’s Boot and Nuke program… it takes 3-4 passes for me to comprehend the information. So if you’re a sharp listener, this shouldn’t be too difficult for you. And when you finish, the instructor even says “If you understand everything in the courses I taught, you’re well on your way to becoming a expert PHP developer”.

Whether this is true or not, who knows. But it was extra incentive to keep going.

With the knowledge I had from Python and PHP, and with the 2016 election, I made a site that integrated all of the topics I learned. I made a scraper in Python that monitored politicians tweets. Then it sent those tweets to a API I made in PHP, which logged the tweets in a database. Then the application served the tweets to a front-end, accessible by the public. A real, life web app. During this time, before the Cambridge Analytica scandal, I was also recording the news 24/7 and clipping out relevant pieces and giving them catchy titles.

Because of the turmoil the election caused, this was more successful than I had thought it would be, and netted my about 300 a week just from YouTube. AWESOME! Everything coming up Millhouse!

Apply for 100 jobs

So, with my new knowledge, and instilled confidence, along with my interest in news, I got a job managing a website for a local news station. Fuck yea!

When I was managing the website for the company (consisted of learning the CMS “Frankly”, and making sure the site didn’t crash), the owner of the company was interested in my PHP dev skills, and pretty quickly put me to work on writing software for the company.

So I utilized Python to interact with Facebook’s API, which was something I never did, and in the process learned how to interact with enterprise API’s with Python to make apps that gleamed actionable information.

After that, I made another Python scraper to interact with PHP to create crawlers on the bottom of TV. Like the headlines that scroll across screen on the bottom of CNN, but it was sports scores for a local TV show.

“IS THIS REAL LIFE?”, I would say to myself hourly of every day. 😀

But, despite this awesome feat, I learned that making software is like, 10% of the deal. The most important part, is making the lives of those who use the software easier. So while I made the program perfect, the TV people still felt more comfortable just doing the task by hand. Color me defeated 🙁

I chalked this up to a loss, and moved on.

Learn AJAX

From here, I developed a time-clock tracking application with AJAX, PHP, MS-SQL, and user feedback. The front end was far less than subpar because of my limited knowledge, but was acceptable enough to be rolled out to the whole company. And as far as I know, the program has had 100% uptime since it’s inception, and the company still utilizes the program on a HOURLY basis. The course I learned AJAX from was once again from Kevin Skoglund.

Learn Bootstrap

Also, along the way I picked up Bootstrap from Ray Villalobos. I didn’t exert as much energy with this course as I did the others, because as long as it looked good, I was content. In retrospect, I should have dedicated more time to this in order to master the framework, because it could have made a huge impact on the UI for my applications.

Branching Out On Your Own

So with my freelance work, I eventually was asked to make a mobile app. After a couple years of independent development, I learned that the instructors were basically reiterating documentation. So from there on out, instead of depending on video tutorials, I learned to read documentation. And I made a hybrid mobile app, built on Framework 7, Cordova Phonegap, with the front-end developed in JavaScript, and the back-end developed in PHP. Around 200 users signed up for the app, which for me, is considered wildly successful.

So, in summation I MADE IT! lol, jk. Im far from it, but I’m now confident in my ability to manage product releases, roll out mobile applications, make web applications, and much more. I hope to work at a big tech one day, but it’s going to take a lot more hustling on my end. If I make it, I will update this article.

Too Long don’t feel like reading because you’re lazy?

The process I learned how to code from:

  • Learn to install Linux with this video
  • Take Ermin Kreponic’s Ethical Hacking Course
  • Keep an eye on this global syllabus from aGupieWare as you progress.
  • Take MIT’s Intro to programming
  • Take ALL of Kevin Skoglund’s PHP essential courses: 1 and 2.
  • Take Kevin Skoglund’s Object Oriented Course for PHP
  • Take Kevin Skoglund’s AJAX course, AFTER you mastered his first two courses.
  • Take Ray Villalobos’s course on Bootstrap.
  • Learn how to build hybrid applications with Cordova/Phonegap. (documentation is your best friend here)
  • Market yourself to potential employers with your new foundations.
  • Build, code, build, code * 10

In Retrospect?

I would have dedicated more time to finishing books, instead of finishing projects. You’re really only as useful as your current knowledge lets you be. So if you spend one hour programming an app, spending 8 reading a book, and fully comprehending everything it will be a much more useful expense of time.

Also, don’t get frustrated with your end users, only get frustrated with yourself. The periods that I learned the most came from becoming so pissed off at something, that there was no other option other than paying total attention and beating the shit out of the topic, until I understood it.


You Might Also Like

Leave a Reply

Your email address will not be published. Required fields are marked *