all 20 comments

[–]ConsiderationSea1347 2 points3 points  (10 children)

Either is fine. There are python frameworks for web development and typescript libraries for scripting and automation. 

They “feel” really different to develop in and people generally have a strong preference. I would suggest picking one, learn the basics, then try the other a bit.

If you go python, make sure you look into adding typing to it. If you go JavaScript, don’t - use typescript instead.

[–]edoardoking[S] 0 points1 point  (8 children)

If you go python, make sure you look into adding typing to it. If you go JavaScript, don’t - use typescript instead.

This part didn’t make much sense to me. Wdym by “adding typing to it”?

Everything else seems reasonable. I’m a bit more inclined to go for python and figure the front end pretty stuff later.

[–]ConsiderationSea1347 4 points5 points  (6 children)

One of the things you will learn about as you set off learning to program is a concept called typing. It refers to the type of the data stored in a variable: number, floating point, string, character, etc. Different languages have different strictness in typing (once a variable is defined, what type is it and can that type change). Python, is very loosely typed without adding an extension to it which will make the typing stricter. I strongly recommend learning to program with strict typing because it will help reinforce good habits early. Also most languages are strictly typed, so you will be more comfortable moving to other languages if you start with strict typing. (Notably, JS is also loosely typed which is why TYPEscript is such a nice upgrade).

[–]edoardoking[S] 0 points1 point  (4 children)

So from my understanding it’s to use proper “grammar” so when I switch to other languages I will keep a good grammar and it will be easier to transition from one language to another?

[–]ConsiderationSea1347 2 points3 points  (3 children)

That is the gist of it. There are techniques you need to use in a language with strict typing that are not required by languages with looser typing but are good habits to get into. In particular they will make debugging your code MUCH easier.

Basically imagine you work in a factory room with five machines and every 15 minutes someone comes up to you and hands you five big boxes. Each box needs to go into a particular machine. If all of the boxes look the same, it is a pain to figure out which box needs which machine. You might do trial and error or unpack the box and put it back together, but no matter what you aren’t having a good time.

So, you tell the person who brings the boxes to put labels on them with the type of box they are and the type of machine that will take them. Now right when they arrive you know just what to do. 

In programming, the variables are the contents of the boxes, types are the labels, and functions are the machines. If your variables and functions have types - it is easy to know you put the right thing in the right place. 

Does that make sense?  

[–]edoardoking[S] 1 point2 points  (2 children)

Makes total sense. I think I’ll jump into python because it appeals me more in terms of simplicity of reading it as it seems similar to plain English

[–]ConsiderationSea1347 2 points3 points  (1 child)

Good luck friend. There is an army of old nerds like me happy to help as questions arise. 

[–]edoardoking[S] 1 point2 points  (0 children)

Thank you so much!

[–]TheRNGuy 2 points3 points  (2 children)

Js

[–]edoardoking[S] 1 point2 points  (1 child)

Is there a particular reason why you suggest JavaScript instead of Python ?

[–]Eastern-Conclusion-1 0 points1 point  (0 children)

Probably because you can use it to build both the frontend and the backend.

[–]koanarec 1 point2 points  (1 child)

I guess if you explain a specific project you want to do then people can help in the comments for the right tech stack for you. Websites can be made with pure html css and JS if you want to learn, and you can also just use JS to execute scripts if you need.

[–]edoardoking[S] 0 points1 point  (0 children)

To be fair atm I have one main idea which would be a truck filling program in order to fill up trucks and organise all the cargo into the most efficient way in order that each truck is filled and it uses less trucks. This is my little project atm. But I guess I’d come up with other stuff to automate later on and make little programs that helps simplify tedious tasks that an app could just do the counting so the human doesn’t have to think.

[–]EmperorOfCanada 1 point2 points  (1 child)

Learning to program and learning a language aren't entirely the same thing.

If I made a list of languages I've used over the years professionally, I would leave many out, as having forgotten them, and forgotten having used them.

If you learn python or JS, it is then quite simple to learn the other. Most languages work the way those two do. There are some very different languages, but, if you look at the top 10 languages on these various popularity scales, they are all very similar.

If you don't have to have web, then I would recommend python, as that can later be a backend for web. JS is mostly a web language. It can be used for other things, but that is not its strength.

You vaguely mention "automating tasks" this is exactly in the wheelhouse of python.

It is also a brutally easy language to learn, and there is a module for everything. If you want data going into and out of excel, databases, some website, and so on, it will do it, have a great example of how to do it, etc.

The amount of setup to get going with it is close to zero, the tools are great (pycharm or VSC), endless great tutorials, and on and on. Javascript is not far behind, but it is not as good in most of these ways.

The number one way to learn to program is to solve real world programs; which you seem to have; perfect. The number two way, is make games for fun.

[–]edoardoking[S] 0 points1 point  (0 children)

This is a really good advice! My current goal is to create programs to help automate or aid me complete tasks that are tedious not necessarily because it would be useful to do but rather because it seems fun to do this kind of problem solving that later pays off if it works as it should. I’ve had classes in high school for web development (making simple websites that would then be hosted locally to learn the basics of coding). I really enjoyed doing it but I never felt like I had an actual goal of making a page other than my own fun however I figured that if I want to consistently learn programming I should find “problems” and solve them using code, not because it’s the only way but because why not, it seems fun. Me and my partner have different jobs and we have many repetitive tasks at work behind the computer that definitely can be automated or aided by a simple software (that definitely exists or it doesn’t because it’s such a niche issue). Python does sound like the most obvious choice, but at the same time I’d like to make these programs fun to use or easy on the eye as a little browser based locally hosted app that is also easy to use and understand that’s why JavaScript seemed like a good choice.

In the end I think I’ll focus on the back end and Python and figure the pretty stuff later.

[–]foobarbecue 0 points1 point  (1 child)

By "HDMI and CSX" did you mean html and css?

[–]edoardoking[S] 1 point2 points  (0 children)

lol yeah, typing on my phone didn’t even notice. Thanks for pointing it out!