
Ask HN: How long from zero coding experience to marketable skills - ml_basics
A friend of mine is working in a non-engineering field is curious to learn what it would take to enter the world of software.<p>They have almost zero experience of programming. Assuming full-time dedication (~50 hours a week) towards learning to code, how long do you think it would take to get to a point where they would be able to get a coding job, and what would be the best approach to doing so?<p>Learning Javascript? C++&#x2F;Java? Is it necessary to study the basics of a CS degree or are there areas in which this is not necessary?<p>Presumably a good strategy would be to ensure that the first job is something that comes with the opportunity to learn general skills that would be open up further doors, as opposed to locking in working in a particular place or with particular frameworks. Are there any things to be wary of?
======
arcticwombat
It's almost impossible to give you an accurate timeframe.

How long it takes depends on

* What they're learning

* What their goals are

* Where they are located/Where they want to work

* Other marketable skills

Bootcamps are a good start but not a single bootcamp prepares someone for a
job as a developer.

You get a job with a combination of skills (Shown through a portfolio of some
kind) and connections.

Your friend needs to learn programming, create a portfolio, get to know the
right people (Recruiters on LinkedIn are a good start, asking friends if they
know anyone hiring is even better)

Most professions take years to learn, programming isn't really any different,
it's just that we allow people with far too little skill to make or break
while on a job.

Other skills also matter, does your friend have experience leading teams?
Creating plans?

\---

* Decide what kind of programming they want to do

* Go to Udemy, pick any course with 4+ stars that include the above with the word "beginner"

* Take the course

* Create a GitHub account

* Create a ToDo in whatever language/toolset picked

* Join a forum dedicated to the language or toolset you picked

* Add your project to GitHub under an OSS license

* Pick a new course, also with the name "Beginner" in the title

* Pick something that exists and looks simple to create, and recreate it (This will take time, probably a few months for simple applications)

* Publish the result to GitHub (Make sure to never steal any images, texts, logos, etc.)

* Pick another two things to create

* Create them, publish to GitHub

Congratulate them, they're working on building a basic portfolio!

Now..

* Go back to your first project, improve it with the things you've learned with the other projects

* Publish the changes to GitHub

* Find an open source project, contribute something to it. Anything at all (Unit tests, documentation, bugfix, bugreport, whatever)

\---

* Make stuff

* Publish

* Reflect on what could have gone better

* Work on that

* Repeat

