07 January 2016
THE GAP by Ira Glass from Daniel Sax on Vimeo.
I know you have. You jump onto a new language, learn a few bits and pieces and then stop.
Perhaps you’ve jumped onto a framework / language combo, Ruby on Rails, Django & Python or Node & Javascript. You follow along with a tutorial or two, attempt your own project, freak out and stop.
Are you making the right decision on which language to choose?
Is there something better you could be learning?
These questions are important. Let’s think about how to lock down your programming education in 2016.
When I picked up Python / Django and later Ruby on Rails, I wanted to build a SAAS startup. I had this grand idea of a journal for day traders that would let them improve their performance based on a trades attributes. This was THE idea of the century and with a quick bit of math, I realised I’d be able to make a fortune in not long at all.
So I learnt to code.
I followed at least a DOZEN full length tutorials and courses and finally hacked together some code for my web app that only a few months before would’ve cost me $6,000 from a dodgy programmer on oDesk.
The only thing that kept me going was the light at the end of the tunnel, my little startup idea.
What’s your idea? What’s your dream? What do you want as a result of learning to program?
If it’s a software startup / business, little things count. Next time you start a tutorial, give your project the name of your future business. Every time you interact with that tutorial, you’ll remember exactly why you’re doing it.
If you just want a better paying job, give your projects the name of your current job that you want to leave. Creating new data for the database in the tutorial? Give the dummy data the names of your bosses or co-workers.
Think the above sounds stupid? You’re probably right, but it works.
Stop trying to learn everything at once, I’m serious. It’s stupid and it’s not how learning any new skill works.
Here’s how it’ll go, you’ll start optimistic, quickly become overwhelmed, get frustrated and finally, you’ll quit. Focus on ONLY one thing.
Ask yourself this question once more:
Why am I learning to code?
If it’s for a web app, look at Ruby, Python or Javascript. Which of those do you choose? Easy, jump on the job boards in the area you live (or would like to live) and see what there’s most demand for. What’s the trends for employment?
It’s a win / win situation, you learn an awesome skill, have the ability to create the thing you wanted and you’ll be highly employable to boot.
If you’re focussing on web development, should you learn Angular, React, Ember, Vue, Redux or Flux at the same time?
Nope.
Sure they’re exciting technologies but you DO NOT need to be distracted while you’re learning your core skill.
It’s hard enough, don’t sabotage your progress with novelty.
You can always learn these skills later and in the meantime you can still build a kick-ass web app without lots of javascript all over the place.
If you’re learning to code in order to build mobile apps, just learn to code for whichever platform you prefer. Don’t care either way? Jump on the job boards and see which is in higher demand in your area.
You have the rest of your life to learn every language and framework under the sun if you so desire, but now is the time for building your foundation. Build it and reap the rewards for the years to come.
If it makes you feel any better, learning any new language or framework is significantly easier once you’ve mastered the first one.
You have the widget / app / startup you want to build in your mind. Your one job is to get your skill level to the point where you can build it to 80% ok.
Stop doing tutorial after tutorial after tutorial, learn what you have to to build your own thing.
Don’t expect to build it from scratch using only your memorised skills.
It doesn’t work that way & It’s not going to happen.
Google constantly. Steal features from tutorials you’ve completed in the past. Refer to your old code and steal where necessary. Chat to the people hanging out on IRC or your framework and language’s Slack channels.
Let me repeat: YOU WONT BE ABLE TO BUILD YOUR FIRST APPLICATION BY YOURSELF.
Pilfer and hack your way to completion.
Don’t know what you want to build for your first or second application?
Think about why you wanted to learn to code in the first place. Did you want to build a SAAS application? Build a questionable version of Buffer or Basecamp with a Stripe paywall. This will give you plenty of experience with many core features involved in many SAAS apps.
Did you want to learn to code so you could get a job? Build a social network, CMS or project management application. Those cover many bases that are key to your knowledge. Once you’ve built one, build another.
Bonus skills for you jobs seekers out there:
Don’t even think about learning them all at the same time. Only add one after you’re comfortable with the previous.
You MUST make progress every week. Every day or two is even better. Momentum is your friend and as soon as you slow down or stop, you’ve made it much harder for yourself to keep pushing on.
Celebrate wins. Let people know once you’ve built your first app. Buy yourself something cool if you’re starting to get the hang of your language of choice. Like momentum, your success depends on you admitting you’re making progress and being grateful for it.
Don’t let despair win. You’re going to get frustrated, angry and want to quit. Learning to program is really hard at times. It is for everyone. Stuck on something? Give it a break for a day or two. Go onto something else and maintain your momentum with something easier.
Don’t set short term, unachievable goals. You’re probably not going to be able to get a job or build your startup by the end of the first month. This is another form of self-sabotage. Celebrate progress and small wins instead.
Every day you procrastinate is another day you’re not getting back. Have some grit, some determination and choose to be awesome in 2016. If this is really what you want to do, prove to yourself that you can do it.