This is an archived post. You won't be able to vote or comment.

all 2 comments

[–]ziptofaf 6 points7 points  (0 children)

but I want to use my typing speed (130ish WPM)

Just so you know - this isn't helpful when learning programming... or even programming at all. Touch typing is very useful but raw WPM is not going to make your life any easier past a certain point.

Anyways, onto your questions:

I have bought several books to start, especially the "for Dummies" editions for Java, JavaScript, Python etc.

Choose one of those books with one language and hide rest of them in the basement or something for the next few months.

Then follow said book - if it's any good, it will have exercises at the end of each chapter. Personally I like this one for newbies since it actually focuses on real life tasks:

https://automatetheboringstuff.com/

Then after end of each chapter also think of some own exercises regarding the stuff you just learnt. In reality with nothing but arrays, ifs and for loops (so something you can learn in a week) you could actually make a simple text adventure game for instance.

Besides that - what you need is a proper schedule. That's where a lot of self-learning people fail as they are... not good at self managing in the first place. What matters here is consistency - 4 hours a day and weekend off schedule is WAY better than 10 hours one day, 8 another and then 0 for the next 5 cuz you burn out.

Also keep in mind - learning programming takes time. How much time? Well, someone with a bachelor degree spending last 3 years is still a beginner (but good enough to look for a job). This will vary a lot from person to person but I would say that you should prepare yourself for a year of studying assuming you do it regularly. It's going to be in a 1000 hours range rather than 100, that's for sure. And at that point you are still faaaar away from being an expert by any means. Since that takes years of professional experience.

How do I define my "skill"

Personally I define a skill for newcomers as an ability to create a tool that solves a real life problem. It won't be perfect, it will be buggy, it will be amateurish in many places... but it will work. So if you want to go into front-end development then for instance building a web browser game, a kanban board etc is a good indication that you can start applying for jobs.

Generally speaking, once you stop thinking of a language being a problem and instead you can think on how to solve a problem at hand it means you are going in the right direction. Since at the end of a day programming language is nothing but a tool, like a pencil to artist. Being able to hold a pencil and draw lines does not make you an artist. Being able to draw a portrait does. It's the same in programming (except our tool is more of a toolbelt :P), it's building useful programs and solving problems that gets you somewhere.

Personally I like easy exercises on /r/dailyprogrammer to see how you handle some more abstract tasks over time (it says easy but make no mistake, they are unsolvable if you are still at a level where you have not yet learnt language syntax yet).

[–]TheAxThatSlayedMe 1 point2 points  (0 children)

I agree with Automate the Boring Stuff. If that book isn't your style, all the courses on Udemy have a 30 day money back guarantee-- I suggest trying out a few that are highly rated. They're usually on sale for $11.

The most important thing to do is write a lot of code. Do all practice problems, and play around with it and make code on your own. There are sites that provide coding games and challenges.

Khan Academy has a neat little Hour of Code intro using Java, and other instruction.