Learning programming: Laptop and phone on an office table with a study chair.
Photo by Alexandru Acea on Unsplash

Is learning to program easy? Let’s find out!

Bright Atsighi

--

There is a rise in the need for programmers and coders. The pandemic increased acceptance of the concept of “Work From Home (WFH)” especially those with digital skills, and this also contributed to their increase in demand.

To join this rise and earn from it requires a lot in terms of finances, time, resources and many more. This article aims to examine some of these concepts and explains how to navigate as a beginner in the world of programming and digital skills while keeping a low or no cost (perception may differ as explained in the Free vs paid section below).

The concept of self-taught programming.

A stack of books and a laptop computer with computer code and a phone.
Photo by AltumCode on Unsplash

I would begin by talking about the self-taught coding or programming concept. This is oftentimes misunderstood to mean navigating the programming world as a lone ship. On the contrary, it is making the decision and resolve to thrive and succeed regardless of the tides and waves the pursuit of programming or learning a digital skill throws at you. 💪 💪

Make no mistake. The journey to becoming a programmer is not an easy thing to accomplish as some may lightly say “hello world” is easy. Judging from my personal experience, learning a programming language is one of the easiest steps to becoming a programmer. The big chunk 🍕🍕 of it lies in solving problems and creating real-world solutions with the programming language you have learned.

The attributes of self-taught programmers.

Having made the above point, I would like to briefly talk about some of the qualities, from my point of view, that one who wishes to become a self-taught programmer should possess.

1. Passion: Motivation cannot be overemphasized in any venture one wishes to succeed. Steve Jobs once said “You have to be burning with an idea, or a problem, or a wrong that you want to right. If you’re not passionate enough from the start, you’ll never stick it out.”

Photo by Almos Bechtold on Unsplash

Pick a skill or programming language that would solve a problem that you are passionate about.

You should first pick a problem you would want to solve with a digital skill before starting or deciding the best programming language or path to get you where you want to be. If it is just to get a job or make money, then pick the easiest trending skill. 😏😃 This can best be decided by doing some research.

2. Research: This should not be confused with the research while learning a programming language or any digital skill of your choosing. It is the research made before deciding on the skill you would want to develop.

A common mistake we make, I also made, is making little, inadequate or no research before deciding on the programming language to learn or digital skill to pursue. ⏩⏩

By all means, take your time ⏰ to make adequate research on the skill that suits your personality, the duration required for mastery🕑, the financial cost 💰 and other cost variables to a skill or programming language before you begin. If possible, I suggest you write an initial roadmap to your goal.

Brainstorming session of a team of four men. Three of them sitting with laptops on each’s lap and one making analysis using a sticky notes on white board.
Photo by Austin Distel on Unsplash

Note that this roadmap isn’t cast in stone, it should be flexible and subject to change as you gain knowledge in your chosen skill/programming language.

3. Dedication and Commitment: This is a desire to keep going despite all odds. If you must succeed as a self-taught programmer, then you must be dedicated and committed to your chosen goal. Don’t take it carelessly, be serious about it, it will pay off.

Photo by Mark Duffel on Unsplash

4. Patience: Learning takes time, especially learning a new skill or programming language. Your journey might come with frustrations and times when you want to give up and try something else that seems more appealing.

Be disciplined to your chosen skill and don’t move between skills, technologies and/or programming languages when your current track is difficult. Stick it out… In Steve Jobs’ words.

Be patient with yourself while you learn.

5. Sacrifice: Make sacrifices for your goal. If you are not willing to make sacrifices for it, you may never achieve it.

A man and woman colleague cheering each other with a high five and a table with a laptop computer and work files.
Photo by krakenimages on Unsplash

Robin Sharma once said, “Great achievement always requires great sacrifice.” You should be willing to sacrifice resources, especially time and money to make progress in your chosen skill and/or programming language.

6. Relax: This is the reason why a lot of beginners, intermediate and even advanced learners quit. They do not plan relaxation in their learning journey.

Photo by Roberto Nickson on Unsplash

On a personal note, I have experienced burnout and a great reduction in my motivation level at certain times in my learning journey because I did not know this.

Intentionally plan rest, relaxation and breaks into your journey to rejuvenate, refresh, renew and recharge yourself to reach your goal.

Sleep deprivation, in my opinion, would do you much more harm than good in the long run. Relax! It takes time to gain mastery.

The hurdles of learning programming on your own

To devise a game plan, it is often important to have a brief of all variables that could influence a voyage. The self-taught programmers and learners of digital skills are not exempted from challenges as they stare at both the best of us in the face. Some of these are

Photo by Eduard Labár on Unsplash
  1. Loads of unstructured info in the wild: Information on the internet is not the problem these days but the structure is. One requires curated data to make appreciable progress. One way to tackle this is to look at a couple of curricula for bootcamps which are mostly made public and free.
  2. Lack of a community and social reach: A community or couple of learning buddies would do some good in the rainy days when the going gets tough. With social media and other tech spaces such as Facebook, Slack, Stack Overflow and FreeCodeCamp you could find support from these communities as you grow.
  3. Project: One challenge I have faced as a self-taught programmer is finding the right exercises to challenge my knowledge. It can be a daunting task to know the projects to build to horn your skills to the world. You could also search through the curriculum of online schools and bootcamps to see the project they build and attempt them.

Free vs paid courses

There are no doubts, most paid materials especially if they have good reviews and lots of purchases, should be very good and ideal for learning a skill and/or programming language. However, the cost is sometimes a discouraging factor for learners, especially from developing countries with low purchasing power.

Photo by CardMapr on Unsplash

This then calls for alternatives to learning without the heavy financial cost. Make no mistake, learning programming cannot be for free because even free content as they are mostly referred still requires mobile data or paid internet service to access.

Most times, even when all, including the internet, is made available, time and interest are also cost factors. So nothing goes for nothing as the popular saying goes.

Start with this mindset, research and prepare for costs. Be it on an internet subscription or added to an internet subscription, the content requires subscriptions or purchases. That there is a cost sacrifice to reach your goal.

Free resources for learning programming

I have added lots of links below to access resources to learn digital skills and programming languages from scratch till you earn your first dollar when you gain mastery of your craft. The majority of the resources I have linked below are what I have used personally in my journey.

Some of these resources are free and even those that have paid content like Udemy, Udacity, etc. have free content likewise.

Photo by Daniel Frank on Unsplash

Use them as you venture into your newly found world.

CS50

JetBrain Academy

SiteBay

HackerRank

FreeCodeCamp

CodeCademy

LinkedIn Learning

Udemy

Udacity

Coursera

Learn digital with Google

Code School

Node School

edX

Bootcamps and Online coding schools

As established previously, attending bootcamps and online coding schools does not mean you aren’t responsible for your progress and still qualifies you as a self-taught programmer.

Photo by Thomas Park on Unsplash

Some of them like the one I used, Microverse, an online school for remote software developers where you pay nothing until you land a life-changing job. No matter where you live gives you structure, opens you to a learning community and give projects that are monitored and are used as an assessment of your mastery and progress in the program. Check them out while you are still making your research and decide to use them to make the quickest progress in your pursuit.

Conclusion

Let me quote the Jamaican-Canadian sprinter, Donovan Bailey, as I conclude “Follow your passion, be prepared to work hard and sacrifice, and, above all, don’t let anyone limit your dreams.” If you think you can, you are correct. If you think you cannot, you are correct all the same. Be the master of your future. Start today!

If you like this article and wish to receive more updates like this in the future, kindly leave a clap 👏 and follow 👉 me here and my various handles. Thanks for your time.

--

--

Bright Atsighi

Full Stack Developer | MERN Stack | Backend | NestJS | NextJS | PostgreSQL | TailwindCSS | Ruby on Rails API