DEV Community

Cover image for RoadMap of Coding for beginners.

RoadMap of Coding for beginners.

Harsh boricha on May 03, 2020

Frequently asked questions of programming. • Should I learn Python or JavaScript? • Data Science vs Web Development vs App Development, ...
Collapse
 
ziizium profile image
Habdul Hazeez • Edited

Check out Roadmp.sh and the accompained GitHub repository:

GitHub logo kamranahmedse / developer-roadmap

Roadmap to becoming a web developer in 2020

Web Developer Roadmap - 2020

Roadmap to becoming a web developer in 2020

Below you find a set of charts demonstrating the paths that you can take and the technologies that you would want to adopt in order to become a frontend, backend or a devops. I made these charts for an old professor of mine who wanted something to share with his college students to give them a perspective; sharing them here to help the community.


Special Announcement:

We now have a YouTube Channel
I plan on covering the roadmaps and put more content there
Subscribe to the channel.


Purpose of these Roadmaps

The purpose of these roadmaps is to give you an idea about the landscape and to guide you if you are confused about what to learn next and not to encourage you to pick what is hip and trendy. You should grow some understanding of why one tool would be…





Edit: To include the original comment I made elsewhere rather than embedding it.

Collapse
 
harshboricha98 profile image
Harsh boricha • Edited

Thank you so much
Much appreciated

Collapse
 
ziizium profile image
Habdul Hazeez

You are welcome.

Collapse
 
harshboricha98 profile image
Harsh boricha • Edited

I'm pleased that you liked it. Just learn any one of them ur choice ... Get a job in that and then try different techs for fun... I'm not a senior developer but choices of stacks or major decisions are decided by leads.. so don't bother bout that just learn what you like.

Collapse
 
ozzythegiant profile image
Oziel Perez

If you have to deploy a site on a shared server (let's say because the client wants the cheapest hosting available) and you know that the web app is a small and for a few employees, then often you will have to rely on PHP. There's some nice frameworks for PHP like Slim, Lumen, or CakePHP that can help you set up traditional web apps or REST APIs.

Collapse
 
harshboricha98 profile image
Harsh boricha

Thanks for adding that... Much appreciated 💯😊

Collapse
 
gombosg profile image
Gergely Gombos • Edited

"As a developer, everyone must know basic web development since Machine learning and Data Science is a service-based skill While Web and App Development is a product-based skill. Hence, Data Science and Machine learning people are called engineers and not developers."

Both could be engineers - just because you're designing a product, you can still be an engineer of course. I'm not even sure if software engineering even exists, but it really depends on how you are approaching the notion of engineering. See my comment here, I think I'm going to expand on this in the future in a post. :)

"Is NodeJS better than Django"
You said you're a CS graduate, trying to educate beginners. Why are you comparing apples and oranges then, which is totally confusing?
NodeJS is a JS runtime engine with some OS bindings to do I/O. Django is a Python framework.
This whole comparison sounds so confusing and useless on the topic.
You can just replace "Django" with "Python"... or actually take a JS full-stack framework like Sails or Nest and compare them with actual Django which could also make sense.

"Django is highly scalable as the caching of applications is quite easy and can be done using tools like MemCache."
You don't scale Django. You scale the Python processes. Memcached (I guess you are referring to that) can cache anything, you can cache pages served by Node as well, as long as you specify the cache lifetime for your responses (e.g.. API responses or SSR web pages). There's a memcached client for Node.

You are giving out some nice "getting started" advice here... just please be precise because otherwise you'll just add to the confusion that people experience when starting out as a developer.

Collapse
 
harshboricha98 profile image
Harsh boricha

Thanks for the insights... I'll update it

Collapse
 
shailout profile image
shailout

It was really an informative read!

Collapse
 
harshboricha98 profile image
Harsh boricha

Thank you brother

Collapse
 
phantas0s profile image
Matthieu Cneude

I'd like to bring some precisions:

  • You can't "learn" a paradigm. OOP is a way of thinking and organizing your code. The implementation of a paradigm can be very different from one language to another. Take Python, JavaScript and Golang for instance. Even if they can have keywords in common, the implementation. Hence, knowing "OOP" or "Functional" or whatever doesn't mean... much.

  • Twitter use mainly Ruby on Rail, mixed with other languages for their backend, not NodeJs. Paypal use mainly Python. And so on. Anyway, these companies use a whole stack of technologies, not only NodeJS or Python or whatever.

Other than that, you make a lot of assumptions in there. It's not because "major" companies use this or that tech that you should, too, especially if you're not as big.

Language choices is mostly based on the library and tooling they have; most languages are Turing-complete, which means you can implement whatever algorithm you want with them.

Collapse
 
harshboricha98 profile image
Harsh boricha

My next blog will be about Dunning Kruger effect and imposter syndrome among developers it will answer few of your questions.

Collapse
 
bhupesh profile image
Bhupesh Varshney 👾

According to your Venn diagram if someone is writing python, they are not "software engineer"
Thanks for clearing this out

Collapse
 
harshboricha98 profile image
Harsh boricha • Edited

Lol I know that's quite biased 😂😂
Python devs are software engineers indeed. No offense.
Great portfolio man.

Collapse
 
ozzythegiant profile image
Oziel Perez

Just do both really, they are both easy. Helps you find more jobs too.

Collapse
 
phantas0s profile image
Matthieu Cneude

I don't think it "easy". It's easy to make it work, maybe, but it's not that easy to maintain on large codebase. JavaScript has a pretty... weird type system, too. If you work with them in big corporations with big codebase, you won't call that easy, I suppose.

Thread Thread
 
ozzythegiant profile image
Oziel Perez

In that context, yes, large codebases are pretty hard to manage, but I could say that about any language if the code isn't adhering to a standard architecture like MVC or something similar. I was just talking about syntax and ease of use.