How I Became A Proficient Programmer in 2 Months

To be honest, 2 months is a bit of a lie. I’ve been reading theory and intro stuff for the last 9 months, but never really did anything with it. Imagine knowing what strings, floats, doubles, ints, if statements, and tons of other code structures are and not knowing what to do with them. That’s where I was for awhile. I worked at Tinder for 6 months as an IT Specialist where I really got to sit down with an abundance of gifted minds and get a further grasp on these concepts. But during that time, I never really did anything with it.

When I left Tinder, I realized this was what I wanted to do instead of IT management. I found it was a better fit for me; It not only worked better financially, but worked my brain in ways I never had before and I consistently had fun doing it. So, the 2 months have been dedicated to becoming a proficient programmer. But, it took a lot of time, and effort. I will warn you, it’s not easy. It’s not hard.

I wanted to briefly outline some of my techniques and some of the resources I used to get me where I am. Again, it wasn’t hard, but it takes time and effort. It’s easy to understand the concepts and the structures on a topical level. It’s easy to grasp a string is just an array of characters with no text actual value associated to it. However, it takes learning how to utilize this knowledge and tying things together to become proficient. Think of it like learning to make a pizza. It’s easy to understand what cheese is, what sauce is, and what dough is. But if you want to make other kinds of pizza you need to learn how those ingredients work with each other, in addition to plenty of other ingredients.

Yesterday’s workload. Thanks BitBucket for the stats.

There are a number of resources and techniques I’ve used to get me where I am. I learn better at my own pace, so a structured curriculum like in school would never have worked for me.

  • Watching Simon Allardice’s Foundations of Programming: Fundamentals on was for me the quintessential and all encompassing topical level course that explains many of the concepts you need to understand before start programming. Lynda is a paid service, but you can start a free trial and watch the course. Some schools offer access for free, so if you have access to a .edu email, go ahead and check your student perks with your school to see if it’s available. Lynda also has a ton of other courses in the “Foundation of Programming” series, as well as language specific tutorials and other topics, so I would recommend them overall.
  • Pick a language, and then stick with it. For me, I went with JavaScript, Python and Java (and frequently rotated. However, I don’t recommend doing multiple when you start, I’m just insane. I’m also teaching myself Japanese and Spanish at the same time. So I can’t emphasize enough DON’T DO IT LIKE THAT. PICK ONE, AND ONLY ONE.) However, as of writing this post, they are the holy trinity of development. I can not stress enough that you DO want to learn these three early in your process, but I wouldn’t recommend learning all three at once. Grasp the basics of one, before starting another. But make sure you become proficient with these; they’ll take you far and do much for you.
  • Embrace the internet. There’s an unreasonable amount of resources online that I’m not even aware of yet, but gosh are they helpful. Sometimes I’ve just needed one question answered, and someone’s personal blog had the answer. I’ll put a list of resources next.
  • My biggest secret of all: speed up the play speed. Turn on subtitles, then boost it to 1.25x or 1.5x depending on what the service’s minimum is. Then gradually rise to 2.0x. As a result, I’m going through three hour courses within an hour and a half, which rapidly speeds up my learning process. You may have to watch things a couple times, but as you raise your speed and get used to faster videos, you’ll adapt to learning at faster speeds. This method may not work for everyone, but I strongly recommend giving it a shot for a while and see if it works for you.
  • Have someone there to help push you. I can list 100 resources, but nothing has been more crucial than my roommate/acting sugar daddy(who I refer to as Software Jesus) and one of my best friends kicking my ass to get me to keep up the work. They werethere for me to ask questions, to keep me working, and keep throwing projects my way. Even if all you have around you are technologically inept people, they can throw cool ideas your way and you can bounce thoughts of them. (However, I’d recommend joining an online community to get involved with to help you when you have questions).
  • Never give up. You will feel broken, you will feel useless, and you will feel like you can’t grasp this at all. That’s just imposter syndrome, it’s normal, everyone who’s gone down this path beats them up thinking they’re not and will never be as good as existing programmers. But it does come, in small batches, and overtime. And eventually, everything will click. It will happen, be patient. If you need to walk away for a day or two, do so. Don’t let yourself get burned out. But don’t walk away for too long, or you’ll have to relearn the basics. It happened to me twice. Imagine how silly I felt forgetting what a string is.

There’s not many technique’s to it. It’s primarily mentality, just stay strong and find methods that work for you

As goes resources, I can’t list every single one, but I’ll try and list a bunch.

  • I used this to get all my foundations and reinforce concepts I learned from outside sources.
  • Stack Overflow. If you have questions, someone’s usually asked it there. Just type it into google.
  • has great tutorials on plenty of major languages. Go through it’s course for whatever you want to use. I did a couple of them twice even because of how informative they are. I started all my languages here, and swear by it.
  • If you want to learn Javascript, I recommend Eloquent Javascript. I used it to get my foundations with using Javascript.
  • There are 3 YouTube channels I’m really partial to. Go through their videos and find out if they have anything relevant for your learning journey. Devtips, LevelupTuts, and
  • Use MOOC’s. Coursera, EdX, and Udacity are my favorites. Google’s courses on Udacity helped me become a proficient Android dev in a day or two (thank you, 2x speed). Though, start with Android Development for Beginners if you want to go into Android. I’m not going into iOS so I have no resources for that, but all the resources I’ve listed, save Codecademy, do have courses on it. I’ve also heard good things about Udemy, which wasn’t great for me, but some people do swear by it.
  • I haven’t used it yet, but the android-dev IRC channel is super helpful. Check it out #android-dev on Freenode, a common IRC (text chat) service. For the uninitiated, IRC is web-based text chat connecting users worldwide in a centralized chatroom.

Just to reiterate:

  1. Watch Simon’s Course.
  2. Pick a language and stick with it.
  3. Use the internet, it has tons of resources.
  4. Speed up the video so you can go through content fast.
  5. Have someone push you to reach your goals.
  6. Never get discouraged, things will connect in time with effort.
  7. Use the resources available to you, my list is barely the tip of the iceberg.

There’s far more than what I’ve listed, and everyone will have different learning styles. This is all just what worked for me, and it may not for you. But I figured listing what got me to where I am now would be a good way to help people get the start they need.

Good luck! I know you can do this.

Like what you read? Give Alexander H. Black a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.