Jump to content

Should I learn full stack development first or should I learn Python(including ML) first?

LebowskiBuschemi

The title's probably got you guys going "wtf is this". So the reason for the question in the title line is that I'm interested in learning web development languages, specifically JavaScript, so I can learn how to build APIs and stuff, but at the same time, I really want to learn Python along with ML. So should start with Python or should I instead start out with HTML, CSS and JavaScript?

 

Link to comment
Share on other sites

Link to post
Share on other sites

Completely up to you and what your long term goal is (i.e. why are you learning these languages, what do you want to build with them?).

 

API is a generic term and not restricted to specific languages. You can build or consume an API in Python just as you can in JavaScript (or pretty much any other language). You could even do it in a shell script if you had to. Similarly ML is a very broad topic that can be applied to all kinds of things. Depending on how much experience with programming you have in general, I'd recommend to focus on basics first.

Remember to either quote or @mention others, so they are notified of your reply

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, Eigenvektor said:

Completely up to you and what your long term goal is (i.e. why are you learning these languages, what do you want to build with them?).

 

API is a generic term and not restricted to specific languages. You can build or consume an API in Python just as you can in JavaScript (or pretty much any other language). You could even do it in a shell script if you had to. Similarly ML is a very broad topic that can be applied to all kinds of things. Depending on how much experience with programming you have in general, I'd recommend to focus on basics first.

 When it comes to building APIs, is it easier to build an API using Python rather than JavaScript?

Link to comment
Share on other sites

Link to post
Share on other sites

4 hours ago, LebowskiBuschemi said:

 When it comes to building APIs, is it easier to build an API using Python rather than JavaScript?

That's a bit like asking whether it is easier to build a car out of aluminum compared to steel.

 

Both are equally difficult, depending on your experience. Both have their pros and cons depending on what your goal is. The difficulty primarily depends on the complexity of the task you're trying to accomplish and less so on the language. Some languages lend themselves better to certain tasks than others, but if you have a lot of experience in one, you might still get a much better result much faster than learning a new "more suitable" language first.

 

If you want to build a web page, then Java Script (or Type Script) is the obvious choice. If you're already familiar with either, using Node also on the server side might make the most sense to you. On the other hand you might already be more familiar with Python. Personally, I wouldn't go for either due to lack of experience, so I'd rather pick e.g. Java, Kotlin or C#. It really depends on what you already know and want to accomplish, "API" on its own doesn't mean much.

Remember to either quote or @mention others, so they are notified of your reply

Link to comment
Share on other sites

Link to post
Share on other sites

10 hours ago, LebowskiBuschemi said:

with ML.

If you are really good at math or have degree in math you can go into ML and if not stay away from it. If you want to be pretty much self-taught developer then web development (full stack or frontend or backend) is the way to go, as there is much less "theory" and way more "practice". You still will have to learn the principles of software development but it's not as specialized as actual ML.

 

* HTML/CSS/JS - basic web design is always handy

* Single Page Applications: Angular, Vue, sometimes Ember.js - this is going more into JS frontend development. It's popular and there is strong demand for it

* Backend: Python or PHP - there is strong demand for both, Python is wider in term of use cases. There is also a lot of Django and Python API jobs but also for popular PHP frameworks as well

 

Mobile development is outside of those languages - you would usually use native platforms or things like React Native. Game development is mostly Unity and Unreal Engine which also are heavily covered by tutorials and support. Just note that "Game dev" can be quite specific with crunch prior to big release, bonus pay and quit due to burnout or just frustration from the crunch... Mobile dev can also be divided between serious well paid jobs and making spam/junk wannabie-apps.

 

I started like 15+ years ago with PHP/web development and then moved to Django when it showed up (Django-SVN anyone remembers?) - but that was kind of accidental as I was looking at other languages to try some other apps - like GUI - and ended again in web. Then at the company I worked for we started using SPA frameworks - Ember.js mostly and I got to build two big dashboards in it.

Link to comment
Share on other sites

Link to post
Share on other sites

5 minutes ago, riklaunim said:

If you are really good at math or have degree in math you can go into ML and if not stay away from it. If you want to be pretty much self-taught developer then web development (full stack or frontend or backend) is the way to go, as there is much less "theory" and way more "practice". You still will have to learn the principles of software development but it's not as specialized as actual ML.

 

* HTML/CSS/JS - basic web design is always handy

* Single Page Applications: Angular, Vue, sometimes Ember.js - this is going more into JS frontend development. It's popular and there is strong demand for it

* Backend: Python or PHP - there is strong demand for both, Python is wider in term of use cases. There is also a lot of Django and Python API jobs but also for popular PHP frameworks as well

 

Mobile development is outside of those languages - you would usually use native platforms or things like React Native. Game development is mostly Unity and Unreal Engine which also are heavily covered by tutorials and support. Just note that "Game dev" can be quite specific with crunch prior to big release, bonus pay and quit due to burnout or just frustration from the crunch... Mobile dev can also be divided between serious well paid jobs and making spam/junk wannabie-apps.

 

I started like 15+ years ago with PHP/web development and then moved to Django when it showed up (Django-SVN anyone remembers?) - but that was kind of accidental as I was looking at other languages to try some other apps - like GUI - and ended again in web. Then at the company I worked for we started using SPA frameworks - Ember.js mostly and I got to build two big dashboards in it.

Regarding back-end languages, is it worth learning node.js over Python and PHP? Also, I have a question. How exactly would you define a framework? Whenever someone explains to me what a framework is, I just think of it as a "collection of libraries" that provides functionalities according to the purpose that it was designed for. I'm sorry if my definition is a complete bastardization of the original or is just blatantly wrong.

Link to comment
Share on other sites

Link to post
Share on other sites

4 hours ago, LebowskiBuschemi said:

Regarding back-end languages, is it worth learning node.js over Python and PHP?

If you will like JS and SPA as a frontend then you may look at node and master that ecosystem on the backend and frontend. Also note that nowadays software stacks are the driving force. You should be looking at picking software stacks, frameworks to masters while language would be a side effect of that (check job offers to see what and how is listed in them, especially in your city, vicinity).

 

4 hours ago, LebowskiBuschemi said:

How exactly would you define a framework?

A tool that makes work easier and better. Django in Python is a go-to framework for web development - it has everything you need to make a dynamic web application - templating, database support, ORM, testing, even generic admin panel. For one it makes your job easier but also standardizes code for a project and partially for any django app out there. Multiple devs can work on same project so consistency and quality is important. And there are other Python frameworks aiming at different use cases as well - like API servers, microservices and so on - so they are chosen based on what fits given project best and what the teams wants to work with.

Link to comment
Share on other sites

Link to post
Share on other sites

As others have said, it's incredibly dependent on what side of the market you want to get into for jobs.


Full-stack?  Learn JS first.

 

Front-end?  Learn JS first

 

Back-end: Python, Golang, or JS are all good options for back-end.

Link to comment
Share on other sites

Link to post
Share on other sites

22 hours ago, LebowskiBuschemi said:

Whenever someone explains to me what a framework is, I just think of it as a "collection of libraries" that provides functionalities according to the purpose that it was designed for. I'm sorry if my definition is a complete bastardization of the original or is just blatantly wrong.

Think of a library as something you can plug into your code to provide specific functionality. A framework on the other hand is more like a basic app where you plug in your functionality.

 

Take the Spring Framework for Java for example. This is a framework for developing server applications. The basic workings of a server app are always the same: Accept requests, do something with them, return a response.

 

Using the framework, you don't have to understand how to open a server socket, listen for an incoming connections, how to hand a request to a separate thread, interpret the HTTP protocol, translate the request body into an object instance, how to distinguish requests for different paths, how to handle user sessions, and so on. The framework takes care of all that. This means you can concentrate on the business logic: What should happen when a particular request comes in, what should the response be.

 

Of course there are libraries for all of those individual parts. And you could probably build something similar by cobbling them together in the correct order. Except someone has already combined them into something that is essentially working, you just have to fill in the blanks. Frameworks also often come with additional tooling (e.g. command line tools, compilers or compiler plugins, IDE plugins, tools for writing test, …).

Remember to either quote or @mention others, so they are notified of your reply

Link to comment
Share on other sites

Link to post
Share on other sites

On 3/27/2022 at 10:22 AM, LebowskiBuschemi said:

I really want to learn Python along with ML.

 

Why did you choose Python? Maybe it is not the best option.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

Python's a good language to learn the basics of flow control, logic, et cetera, on, and before I picked up Golang, it was my prototyping language, so I won't say it's a bad language to start with.

 

Then again, I think Ruby is a great language, especially if you're going to read Principles of Object Oriented Design in Ruby, which is something I recommend for every starting developer.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×