Best programming language for beginners to learn?

WiiMiiSwitch

RiiConnect24 STAN
OP
Member
Joined
Dec 18, 2020
Messages
1,951
Trophies
1
Age
23
Location
Not Society
XP
4,622
Country
United States
Hey everyone, I was just wondering what programming language was the best to learn for beginners out of these options
Python
C++
Java
HTML/CSS
Javascript
Any help would be appreciated, thanks
 

masagrator

The patches guy
Member
Joined
Oct 14, 2018
Messages
5,158
Trophies
2
XP
9,178
Country
Poland
1. HTML is not a programming language
2. I would say Python is easiest to learn from those (personally started from C++ though). But important thing is to learn later about casting types since Python allows both typeless and type programming. Learning about casting types will help you later learn languages like Java and C++.

Don't learn Javascript since it's less and less popular because of their insecure typeless nature. Typescript is getting more popular as replacement for Javascript since it's basically Javascript with type casting.

As pointed below, if you have zero knowledge about programming and logic operations, maybe the best will be to start from Scratch language. You will learn very basics of every standard programming language.
 
Last edited by masagrator,

Kopimist

Well-Known Member
Member
Joined
Nov 6, 2019
Messages
311
Trophies
0
Age
35
XP
775
Country
United States
Hey everyone, I was just wondering what programming language was the best to learn for beginners out of these options
Python
C++
Java
HTML/CSS
Javascript
Any help would be appreciated, thanks
It really depends on what you're looking to do. Different languages are optimized for different things. If you haven't already got a grasp of basic computer science I suggest checking out MIT Scratch. I know it's available to students at least, if I'm not mistaken anybody can download it though. It's really been a while.

If you already have a basic understanding of how computers 'think' and 'make decisions' ie digital logic then you could skip Scratch
 
  • Like
Reactions: WiiMiiSwitch

Sypherone

Well-Known Member
Member
Joined
Apr 28, 2019
Messages
620
Trophies
0
Age
43
XP
982
Country
Germany
From these Python is the easyest to learn. Its a higher Language for frontend usage. Then C++ or Java for Programming Applications. HTML/CSS is a Markup Language also known as " What u see is what u get".
 
  • Like
Reactions: WiiMiiSwitch

Pk11

A catgirl with a DSi
Member
Joined
Jun 26, 2019
Messages
878
Trophies
1
Age
20
Location
米国
Website
pk11.us
XP
2,856
Country
United States
Hey everyone, I was just wondering what programming language was the best to learn for beginners out of these options
Python
C++
Java
HTML/CSS
Javascript
Any help would be appreciated, thanks
As others have already said, Python is a solid place to start. Though I will argue that JavaScript can be a good starting point too, it's definitely a bit cursed at times and such, but imo the most important thing to consider is what you want to do with it. Learning Python to code a website (front end) is as pointless as learning Spanish to travel to Japan, and learning a language for the sake of it without doing anything with it seems like a good way to get bored.

Python is a great language for CLI programs and simple scripts and such, due to the large standard library and large number of libraries available many tasks are done for you already you just need to piece them together and the syntax, while unconventional, does a good job of directing you towards writing readable code and is very simple to understand.

JavaScript, while perhaps not as well designed and lacking the convenience level of Python's libraries, I still find very noob friendly and is basically required for writing interactive websites, it (+HTML/CSS) is also IMO by far the easiest way to make a GUI program, GUI coding in Python is confusing and a pain. Sure there are libraries and even other languages like TypeScript that compile to JS now, but vanilla JS is still honestly pretty easy and extremely good to know if you want to work with the web since at the end of the day all web code is JS. It's also hard to beat its simplicity to get into, press F12 right now, click the "Console tab", and tada you can run JS.

C++ and Java are both good languages too that have their purposes, if you want to write some homebrew C or C++ is basically required for example, however I would suggest Python or JS to start with personally. As long as you can find something to do in a language and can Google your issues chances are you'll be fine, I started with a few little Python scripts then when I found DS homebrew I learned C++ by just... doing it, downloaded the code of GodMode9i and from my little Python knowledge, looking at the other code, and Google I was able to get what I wanted to work.

From these Python is the easyest to learn. Its a higher Language for frontend usage. Then C++ or Java for Programming Applications. HTML/CSS is a Markup Language also known as " What u see is what u get".
Sorry to be pedantic but Microsoft Word or the like is WYSIWYG, HTML is kinda the opposite. WYSIWYG is when what you type looks the same as the final output, no formatting tags or such.
 
  • Like
Reactions: WiiMiiSwitch

Sypherone

Well-Known Member
Member
Joined
Apr 28, 2019
Messages
620
Trophies
0
Age
43
XP
982
Country
Germany
A lot of Open Source is written in Python. Maybe u run a Raspberry Pi as Server, there is a lot potential for it to learn. The Primary Apllication is most written in C++. But the User interaction part, the data u get and work with, is written in Python. U can say Python is for the custom stuff.

Some statistics for used Programming languages
Screenshots_2022-07-03-18-55-34.png
 

Attachments

  • 1656867894387.png
    1656867894387.png
    340.7 KB · Views: 15
  • Like
Reactions: WiiMiiSwitch

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
35,314
Trophies
2
Website
trastindustries.com
XP
25,026
Country
United Kingdom
Best means many things and indeed any one of those could reasonably classify as that for real requirements I have seen out in the world and would encourage you to have ideas around.

In no particular order.

As others mentioned HTML in the classical sense is not a programming language and instead a markup language. HTML5 does actually become a programming language though. Javascript/ECMAscript being the thing web developers turn to make code run on the user's PC.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Language_Resources
https://www.w3schools.com/html/default.asp (once a less than liked website, dubbed w3fools by many, today it does well)
https://www.w3schools.com/css/default.asp and they do have javascript as well.

If you want to wind in some php (what most use to have servers run code) then that sends you down the web developer path. If best in this case is what can I learn most easily and turn into paid work then easily all this -- any number of businesses wanting custom wordpress plugins, websites and such like which this does happily. However don't be a statistic -- learn what security is before touching that side of things, and you might want to learn some very basic server admin as well (granted what is ftp, what is cpanel, what is sql, what is phpmyadmin probably do most things you want for the random local business thing. See also "full stack" developer, even more so if you are also going to learn to slap gimp/photoshop hard enough to make them a banner, never mind a logo).

C++ is probably the hardest conceptually on this list, it is also what most of the higher performance world uses in anger with its ancestor C (you might pick it up by default when learning this but there are many asterisks there) and plain old assembly for the super turbo nerds needing super turbo code (are you writing a graphics driver or something that needs to be super secure? No, then don't worry).
There is a phrase in learning coding that says along the lines of everybody programs everything in their first language (the Basic thing mentioned above also being said to ruin many a developer as they try to fit everything to a Basic mindset, and later in history visual basic/VB).
To that end you could reasonably learn C++ and have it in turn be useful for making games of all flavours (full 3d to higher demand 2d), some drivers, higher performance code for all sorts of fancy things. If you have any kind of background in electrical engineering then that will help here. Going back to the writing code you get paid for thing then this will easily be the longest road for that milestone. So barrier to entry but in turn high performance and is the men from the boys of programming of your list.

Java. *spits*. Originally something of a web programming language it fell off dramatically outside of a few business cases. Said business cases also being what sees its main use on the PC today as some business will have a program it keeps running for the next decades to do some internal function, possibly requiring a specific old version of java to be installed with a list of security flaws longer than a long thing and hard to run on a modern OS. I count myself lucky among computer bothering types that I am not subjected to that outside of one program for one customer that is isolated nicely but various friends are less fortunate.
It is also the primary programming language for a little thing called Android (IOS mostly being C++, a minor tweak on such things called objective C if taking the official path and in the slower performance but easier to learn camp then something called Swift) which is why most will learn it today.
Also where I noted basic and visual basic as the bane of programmers above then today java was probably that thing's place as most computer science courses that teach java will be the lower end ones that see them pump out a lot of mediocre programmers that make life of other programmers harder. https://www.joelonsoftware.com/2005/12/29/the-perils-of-javaschools-2/ for a now quite old take but one that will be echoed.
To that end real code can be made with it, might even perform reasonably well as these things go, though most will have various levels of resentment towards it. On the easier end of the spectrum as well (generally speaking the easier a programming language is then the more it wrests from your hands to handle itself, which both makes it slower and makes life harder should you wish to step up to a fancier offering).

Python. Said to be the glue that holds modern computing together. It is slower than many things, not particularly low level but it can take one bit of data and convert it to another such that two clunking programs might speak to each other that otherwise could not, has a reasonable means to make a graphical user interface*, runs on many operating systems (maybe even with minimal/no code changes where that would be a miracle for C++), and you can do it quickly in the proverbial hanging by your ankles upside down in the dark of a greasy hole scenario too. Nothing is also ever so permanent as a temporary solution.
The web stuff including php might be quicker to get to the paid work territory but this is not so very far behind, though you are going to want to do some more general programming background knowledge, and if you did want to switch up and learn something with a bit more kick you would be in reasonable stead to do it.
I would 10x go for this over Java myself but that is also my personal dislike (see also massive understatement) of Java shining through.

*of all the languages mentioned then if you wanted to make a program to do some changes to a ROM/save/file format and go from there then Python would be my choice of thing to point most people at. It will struggle to do some kinds of hardcore calculations for a list of 100000 items where C++ will not even blink (if you code it right) or take a notably shorter amount of time but if you don't imagine too much of that then not so bad and the user will probably take more time selecting which option and contemplating things.

Throughout this I mentioned things like general programming and other background info. For many this is the equivalent of being good at a human language and being able to tell a compelling story. https://textexpander.com/blog/the-7-most-common-types-of-errors-in-programming-and-how-to-avoid-them and knowing how an operating system works ( https://andysbrainbook.readthedocs.io/en/latest/unix/Unix_01_Navigation.html being usually far more useful info than what some esoterica with data handling of a given language. Or to take it back to a language would something like this (a nice means of analysing characters in a work and writing them) be more useful than geek level response for what is an adverb?

To bring it back around then while hopefully many of the "best" questions will hopefully have been asked as part of this then to spell out the big ones as I generally see it.
I gotsa get paid would split between big boy money (hard, dirty, dangerous works for computing but other than RSI not much dirt or danger in programming. More generally this would be written as keep the legacy things running that nobody else knows and you will be kept around) and from start to first payment (there are a million php programmers but 10 million wordpress installs needing custom work) being how that one goes down.
Best as in easiest -- see low level vs high level programming as your list is pretty much the modern spectrum for that one (would not suggest C in this day and age unless you know you need it).
Best as most likely to succeed rather than being an unread book upon your shelf (how many people want to learn to play guitar vs actually do that? Same here for programming). Big secret for learning programming though is find a goal and work towards that -- I can go through programming examples and if your mind operates in a way that responds to that then great (you are probably 1 in 10000) but if you are willing to take a slightly longer path to making a little editor for a game (save, stats, graphics, level, AI scripting... it really does not matter for a lot of things), making a format conversion tool for a music/graphics/whatever format then that is a tangible goal with real results that motivates more than just "wanting to learn".
Best as in fastest end result in a program? C++ if you can handle it but if you are not going to be a turbo nerd you will find all the others nipping at its heels.
Best as in fastest turnaround to make a suitable program from someone/yourself being all wouldn't it be nice to have? Probably not going to be C++ from even a prodigal newer programmer. What will avoid the spaghetti code in 10 years that is crucial to this task that this field/game modding/company does and nobody knows how to handle much less extend to cover new scenarios? That is possibly less of a programming language question (though it could very easily still be one) and more of a project management question (the short version of that one is always always always have a specification for what needs to be done, and make sure you get it -- I don't mind telling you my greatest failures have been when someone has a vague feeling of something they would like to happen and try to please that than having "this needs to do this").
 
  • Like
Reactions: WiiMiiSwitch

plasturion

temporary hermit
Member
Joined
Aug 17, 2012
Messages
825
Trophies
1
Location
Tree
XP
2,475
Country
Poland
QBasic is good for start, however I reccomend pascal because nobody use it anymore and that's cool. With pascal knowledge you can take step further and with objective succesor - Delphi to make cool windows programs or games very easy.
Btw. anyone know what happened to delphi since version 7 there's no any update?
Personally I reccomend c++ for start and some older version, just because is most predictable and understable with experiments on it to learn how cpu instructions works and good for theory of objective programming, but maybe too much restrictive at begining. Python is more extended and flexible to do sort of things, but too much automatc like basic and you can only wonder how some commands exatcly works but with no answer. It's like a magic of regex. You can only guess.
 
  • Like
Reactions: WiiMiiSwitch

WiiMiiSwitch

RiiConnect24 STAN
OP
Member
Joined
Dec 18, 2020
Messages
1,951
Trophies
1
Age
23
Location
Not Society
XP
4,622
Country
United States
Certainly! You can have websites run from python, I've made a rom editor with a GUI, in python.
It makes development very fast (provided you know how to do the things you wish to do)

There's many pieces of software written in python.
Oh great, i thought you would say something like it was as useless as straight, great thing that's not the case!
 
  • Like
Reactions: cearp

aerglass

Well-Known Member
Newcomer
Joined
Apr 10, 2022
Messages
89
Trophies
0
Age
42
Location
earth
XP
194
Country
United States
Python, it is just really easy but really slowwwwwwwwwww, whatever just start with this one, it has great support, you can run it pretty much anywere (even on the nintendo wii using a port of python, what)

C/C++ will make you end up with good habits, but don't be like me which started on C++ and litterally died afterwards lol, everything was so complex and confusing, at least my code worked, but now i am more experience and when i look at my old code i die of cringe lol.

Java, do not waste your time on learning and using this, it is a mess, only learn if you need it. i know java and it is just a mess,

HTML/CSS, that isn't even a programming language. With this you can make limited website
Javascript, just die, even for me javascript is kinda hard, maybe because i am used to C/C++, when combined with html and css you can make some nice looking websites.
 
  • Like
Reactions: WiiMiiSwitch

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
35,314
Trophies
2
Website
trastindustries.com
XP
25,026
Country
United Kingdom
While I was being very serious when I spoke of my intense dislike of Java and am quite happy to see the world dodge having another Java programmer/learned on Java programmer I can't get to it being unbearably complicated compared to Python or in general. Both are high level languages that abstract about the same amount of stuff away*, with lots of libraries and lots of helps to getting things running, both have their fair share of cruft from being developed over decades as requirements change but they are both still professionally managed enough that is well within reason. Equally said cruft only really starts to rear its head when you get further into it -- learning about loops, data types, operations on said data, grabbing files in/writing files out, taking input, converting data types works much the same for anything someone is likely to use in anger (esoteric languages and some aspects of assembly being a different matter).

Don't know whether it was poor tuition (some of my best "those who can, do, those who can't, teach" moments and its "those that can teach well" furtherance have been found from programming courses/books and I already understand enough of programming and its mindset that learning a new language is for the most part seeing what restrictions I face over bare metal and what the syntax is. I got another book/loaded another website/saw another video series and it all became very clear in a hurry. We all learn differently as well so what is good for me, or the hypothetical me that is coming completely cold to programming, might not be good for you and vice versa; if you can figure out how you learn best then that is a valuable piece of knowledge to have), poor mindset (while it is a crying shame that kids are not taught to program in schools since the 90s, instead maybe getting MS office for idiots course, I do have to wonder if age in some ways is not a bit of a help. Likewise programming is often enough of a new field for people that I would not necessarily want to undertake learning it during a period of emotional turmoil.), incapable mind (some even otherwise intelligent people just can't do it or fail to take it to as well as some others. https://www.lifehack.org/886292/types-of-intelligence is not uncontroversial but a framing worth pondering never the less) or something else I am not considering.

*I usually break it down into assembly wherein you control everything including memory allocation, C/C++ family where you have pointers and some higher level constructions/concepts but largely leave it to the compiler to handle memory allocation and still get to do a lot of maths (which makes it very fast in the right hands but having to deal with pointers, which generally sort the men from the boys in programming, and all sorts of things that can trip you up gives the security and difficulty aspect people ponder), scripting (Java and Python being this) where you don't have pointers and probably have some very high level constructions, and then one further in stuff like Scratch and other really high level things not really designed for useful work but as a teaching tool for younger kids where visual learning is probably better than abstract maths and text based stuff. There are some further things people like to contemplate like operator overloading, inheritance, nature of libraries vs base/underlying OS, global/local variables and behaviours thereof, typing (static and dynamic approaches, short version being while bits in memory are bits in memory the way you read them has many methods, dynamic typing is usually seen in lower level languages like C and definitely assembly but also one of the things that can trip up new C programmers where something more statically typed will throw an error if you try to use the "wrong" method even if at bit level it all makes sense**) and all the sorts of things people do in obfuscation contests to make things unreadable but they are largely immaterial in this distinction system.

**while I don't mind throwing out terms for the curious to look up I too often see typing used as a "oh you don't know that, aw look he thinks he is a programmer" type dea. So C will recognise text as a base type of data (it is not in most computers these days but hey), go for ASCII for this example https://www.asciitable.com/ even if it is outdated and I would be considered bad https://www.joelonsoftware.com/2003...-about-unicode-and-character-sets-no-excuses/ . Adding 1 or subtracting 1 will move the relevant amount in the alphabet***, and there are further fun things like moving from capitals to lower case and vice versa simply by addition of a number. Can do that happily in C all day long, might even be a suggested method, but attempt that in a statically typed language and you will be told you are wrong and instead want to find whatever library handles text, include it if it is not already there (more memory needed to both store the program and in RAM) and do the capital-lower case conversion function it gives you (which might not be the same if you move from say Python to one of the other scripting languages, or indeed if you are rewriting it in C to speed it up as the conversion for your database is suddenly now needing to be run a million times a minute and the fractional extras add up).

***if you thought "What happens on A or Z?" then congratulations you are thinking in terms of limitations and potential errors already. Keep it up as it will make you a good programmer.

Anyway the list of asterisks is adding up there so I will tie it off again for now.
 
  • Like
Reactions: WiiMiiSwitch
General chit-chat
Help Users
  • No one is chatting at the moment.
    Dark_Phoras @ Dark_Phoras: Skeleton Ike, the dude who rides a bike