DEV Community

Cover image for How long does it take to learn to code?
Coderslang: Become a Software Engineer
Coderslang: Become a Software Engineer

Posted on • Originally published at learn.coderslang.com

How long does it take to learn to code?

In one word, FOREVER!

You might think I am exaggerating, but learning to code is an iterative and lifelong process. Every day new technologies are being developed to optimize old workflows or introduce new and more efficient workflows. Staying up to date with these technological advances and breakthroughs is important to stay relevant to the ever-changing workplace landscape.

First Steps

Let's backtrack for a moment, if you are a beginner just starting on your coding journey or someone learning to code, coming to know that learning to code is a journey, not a destination could seem quite daunting and might deter you from carrying on, but stay with me. Learning to code is highly dependent on what your aim is, what you want to do with your skills after you learn to code.

If you are learning to code as a hobby, your aim could be learning the basics of programming, then try out a bunch of avenues in coding and pick the niche that resonates the best with you. If you picked up coding for professional enhancement or switching careers, you might want to focus on developing the skills that are in high demand and can be picked up fast like Web Development.

Learning never stops

If you want to build the software of your dreams, after learning the basics, you should break down the features of the software and then focus on learning those technologies only.

One of the things to keep in mind is you will face a plethora of challenges, especially at the beginning: when you don't know what you don't know. But as you practice more and gain more experience, you will discover more ways on how to write good quality code. Going from this weird mix of single letter functions and variables:

const a = [];

function f1(x) {
    a.push(x);
}

function f2(x) {
    console.log(a);
}

f1(Date.now());
f1(Date.now());

f2();
Enter fullscreen mode Exit fullscreen mode

to this high quality, self-explaining code:

const dateList = [];

function recordDate(date) {
    dateList.push(date);
}

function displayDates() {
    console.log(dateList);
}

recordDate(Date.now());
recordDate(Date.now());

displayDates();
Enter fullscreen mode Exit fullscreen mode

Both pieces of code do the same thing, but one is far more understandable just in a glance. This will take time, but as long as you keep going you will definitely get there.

As you progress through your journey you will also learn about the conventions and good practices for the tools and technologies you are using such as usage of snake case in Python

snake_case_object.some_function()
Enter fullscreen mode Exit fullscreen mode

and camel case in JavaScript and TypeScript.

camelCaseObject.someFunction();
Enter fullscreen mode Exit fullscreen mode

Since coding is a journey, make sure you are enjoying the journey. If you are not enjoying the journey choosing a different path is always an option, but make sure that you don't just run after a new shiny object whenever you come across one or the going gets hard, put in 100% of your effort because if you put in half-hearted work, the results you get will be half-hearted as well.

By changing paths I mean if you are highly enthusiastic about Artificial intelligence, Machine Learning, and Big Data, if you try BlockChain Development, it's highly likely that you would not enjoy the process, or if you are a visual person like me, you would be better off pursuing Front End Web Development or App Development than diving into the field of Artificial intelligence.

Coding is truly a vast and wonderful domain, which offers you endless possibilities from making a script to automate mundane tasks to enable everyday people to change the world by creating new pieces of software like Google and Facebook.

Chase your dreams

One of the key ingredients of coding is it enables common folks to change the trajectory of where the world is headed, such as the landing of a helicopter on Mars during Mars Helicopter Mission 2020 by NASA was facilitated by almost 12,000 people from all around the world contributing to Open Source Projects on GitHub.

You can also leave a mark on this world using programming as a tool to achieve your dreams. The process of learning to code is not easy, just like anything worthwhile in life, but it definitely highly satisfying and financially rewarding as well. Another perk is having such a large number of sub-domains that enables any developer to switch over to another field as he or she seems fit.

If you start off on this journey and keep putting one foot in front of the other even when challenges and difficulties show up, you will make it!

Learn Full-Stack JavaScript

Top comments (13)

Collapse
 
pengeszikra profile image
Peter Vivo
const dateList = [];

function recordDate(date) {
    dateList.push(date);
}

function displayDates() {
    console.log(dateList);
}
Enter fullscreen mode Exit fullscreen mode

The problem with this code piece are recordDate and displayDates have outer dependency: dateList. Without that variable these two function is useless.

Collapse
 
jamesthomson profile image
James Thomson

100%. Much better to use pure functions.

Collapse
 
rafarochas91 profile image
Rafael Rocha

Or provide the dependency as a parameter even if it contains side effects you have overall control. Following the Inversion of Control principle.

Collapse
 
dakujem profile image
Andrej Rypo

You would export the functions from the module and keep the variable private. It's not the point of the example.

Collapse
 
coderslang profile image
Coderslang: Become a Software Engineer

I absolutely agree. And it's another proof of the fact that learning never stops πŸš€

Collapse
 
jmfayard profile image
Jean-Michel πŸ•΅πŸ»β€β™‚οΈ Fayard

Right, it's like dancing, you are never done learning, so focus on enjoying every moment

Collapse
 
coderslang profile image
Coderslang: Become a Software Engineer

Absolutely agree! Enjoy the ride or change the track :)

Collapse
 
dakujem profile image
Andrej Rypo

I was almost expecting an answer like "Two months." or "All you need is this one course.", but this article actually sheds some light on the topic the right way.

Collapse
 
coderslang profile image
Coderslang: Become a Software Engineer

Two months is a reasonable timeframe to study the basics of JS. But realistically it's more like 6-12 months to get from zero to the first job as a software engineer. And then you really start learning :)

Collapse
 
teallarson profile image
Teal Larson

My thought as well.
Andre 3000 Forever Ever

Collapse
 
chupavn profile image
chupavn

Thanks for your sharing!!! πŸ˜ƒπŸ‘

Collapse
 
coderslang profile image
Coderslang: Become a Software Engineer

I'm glad you liked it πŸ™

Collapse
 
arian_chauhan profile image
Arian Chauhan

A bug will still haunt you as you walk into your after life. FOREVER AND EVER