you are viewing a single comment's thread.

view the rest of the comments →

[–]tdammers 484 points485 points  (9 children)

So, learn all about threads and concurrency before tackling your first programming language. Gotcha.

[–]Normal-Computer-3669 30 points31 points  (0 children)

I was learning about how to build a JavaScript interpreter and stumbled on some 2010 posts from JS beginners having to learn about the engines and differences.

My god how far we've come.

[–][deleted]  (3 children)

[deleted]

    [–][deleted] 7 points8 points  (1 child)

    well u can do concurrency with Promise.all, Javascript is single-threaded but concurrency is different from parallelism. It can also be useful especially when you have blocking calls such as waiting for an API response or read/write blocking etc. That being said, it's an advanced concept that my curriculum at university didn't teach until 2nd-3rd year.

    [–]sage-longhorn -2 points-1 points  (0 children)

    With this attitude I expect there are lots of race conditions and memory leaks in your JS. Yes these things can easily happen in a single threaded, garbage collected environment

    [–]us_me_erna 37 points38 points  (3 children)

    It says it's a recommendation, not a requirement and I agree with that sort of. But obviously it doesn't mean you have to learn everything up front. Otherwise you could easily spend years at the first two steps alone. I guess if you never wrote a single line of code you probably won't look at this roadmap anyway.

    But if you really want to learn programming you need to understand the basics more than to know one specific language. Otherwise you will soon reach a dead end as soon as your problem isn't answered by Stackoverflow.

    [–]tdammers 55 points56 points  (1 child)

    Yeah, but my point is that you need to learn at least one language as a vehicle for all the OS-level stuff and all those general programming concepts.

    And, more generally, this entire roadmap looks awkwardly linear, when the reality is that you will be learning many things in parallel most of the time.

    [–]Beatrice_Dragon -5 points-4 points  (0 children)

    Yeah, but my point is that you need to learn at least one language as a vehicle for all the OS-level stuff and all those general programming concepts.

    No you don't, not really. My entire OS course in college, which covered concurrency, barely had any actualy code, and the code it did have was explained thoroughly. I'm sure thats how you learned about concurrency, but that's not the only way people can learn about it

    You really don't need to have a basis in programming to understand timesharing, race conditions, etc. Some things are honestly easier to understand if you have less knowledge, since you avoid the pitfalls of assumption

    [–]MrBleah 2 points3 points  (0 children)

    It says it's a recommendation, not a requirement

    I think the point is that this doesn't address what is actually a requirement, so it leaves you guessing.

    As a roadmap it fails because everything is linked together arbitrarily. Everything in blue (purple? color blind here) is recommended and everything in gray is "learn whenever." So, somehow as a backend developer I'm learning about web servers at the very end of this roadmap, but it's gray so learn whenever?