Jump to content

What programming language should I learn?

AndreiArgeanu

Hi. I am kind of new to the whole programming thing, I have myself some experience in Android Studio working a bit there and I can understand some C# code perhaps.

Now I plant to use it to make stuff, don't really know what "stuff" but I plan using stuff like arduino and raspberry pi's for my projects. I was thinking of C++ as both the arduino and raspberry pi support the language but visual studio on pc which I would use to communicate with such devices runs in C#. So yeah I need help.

Link to comment
Share on other sites

Link to post
Share on other sites

emmm

if you want to learn programing language that related to hardware,c will be the best choice.but dont use visual stdio....it's used to do desktop developing...just use the original arduino ide if you are new to this

 

and vs code also works

Link to comment
Share on other sites

Link to post
Share on other sites

37 minutes ago, AndreiArgeanu said:

Hi. I am kind of new to the whole programming thing, I have myself some experience in Android Studio working a bit there and I can understand some C# code perhaps.

Now I plant to use it to make stuff, don't really know what "stuff" but I plan using stuff like arduino and raspberry pi's for my projects. I was thinking of C++ as both the arduino and raspberry pi support the language but visual studio on pc which I would use to communicate with such devices runs in C#. So yeah I need help.

I'm personally a fan of Java, though am slowly trying to brach off into C#.

 

If you want to do Arduino stuff, work on learning C/C++.

 

There are tons of programming languages out there, each with their own pros and cons.

 

Some popular ones are Python, C++, C#, Java, Ruby, SQL, and JavaScript.

Specs: CPU - Intel i7 8700K @ 5GHz | GPU - Gigabyte GTX 970 G1 Gaming | Motherboard - ASUS Strix Z370-G WIFI AC | RAM - XPG Gammix DDR4-3000MHz 32GB (2x16GB) | Main Drive - Samsung 850 Evo 500GB M.2 | Other Drives - 7TB/3 Drives | CPU Cooler - Corsair H100i Pro | Case - Fractal Design Define C Mini TG | Power Supply - EVGA G3 850W

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, AndreiArgeanu said:

Hi. I am kind of new to the whole programming thing, I have myself some experience in Android Studio working a bit there and I can understand some C# code perhaps.

Now I plant to use it to make stuff, don't really know what "stuff" but I plan using stuff like arduino and raspberry pi's for my projects. I was thinking of C++ as both the arduino and raspberry pi support the language but visual studio on pc which I would use to communicate with such devices runs in C#. So yeah I need help.

Arduino uses C/C++, which is what's typically used in embedded systems like it. If you get a kit, it should come with an IDE that lets you program into it. i.e., you're not using Visual Studio.

 

Raspberry Pi can run a full-on Linux, so pick your poison. Though the developers of the board appear to have selected Python as the language for their learning material. However, if going outside of Python, you'll need to understand the toolset available to you. For example, C/C++ code is typically compiled in Linux using gcc, which can get very convoluted in and of itself if you don't have an IDE (like Eclipse) doing it for you.

 

Ultimately though, the gist of it is you're not really going to be learning just a language here. You're learning a development environment.

Edited by Mira Yurizaki
Link to comment
Share on other sites

Link to post
Share on other sites

Here is what I recommend and why:

-Python: easy, simple, fast. Use cases are plentaful
-Node.js (JavaScript): Easy yet being closer to the average programming language
-C++ : Although harder it is professional, easy, more known and documented
-F# : Only use if you plan on going into data science, although not used as much as R syntax is much better
-Clojure: Never used it myself (yet) but from my research it is high paying
-Java: Still good unless you wanna make Android apps
-Kotlin: Like Java but for Android
-Swift: The only real iOS development language anymore

Here are things I recommend to stay away from and why:
-C: Not used much anymore (being replaced by C++), harder to learn, not used everywhere (still more recommended than anything else in this list)
-SQL: Only a stay-away-from situation if you are not doing anything with databases
-PHP: A bit controversial but there is a reason. PHP is not needed as much in most places thanks to the rise of Python and NodeJS
-M#: highly obscure and unknown
-B: The predecessor to C, near impossible to even find a compiler anymore
-HTML/CSS: Not actual programming languages (they are here anyways). They are a Markup language and a style sheet
-Go: "Made by developers for developers" by ass, the syntax is a pain for everyone I know

My middle ground list:
-Lua: Has many uses and issues
-C# : has issues but nothing too bad
-Ruby: Great language, sad to see it dying

Link to comment
Share on other sites

Link to post
Share on other sites

56 minutes ago, SafyreLyons-5LT said:

? Not used much anymore (being replaced by C++)

Except that almost everything is fundamentally written in C, including most of the languages in your list.

 

57 minutes ago, SafyreLyons-5LT said:

C++: (...) more known and documented

Not true.

 

57 minutes ago, SafyreLyons-5LT said:

-Python: easy, simple, fast

Python is even slower than Java. Don't. Just don't.

 

58 minutes ago, SafyreLyons-5LT said:

-B: The predecessor to C, near impossible to even find a compiler anymore

Here you go:

https://github.com/Leushenko/ybc

 

Also, if you like Clojure, try Common Lisp (SBCL).

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

7 minutes ago, Dat Guy said:

Except that almost everything is fundamentally written in C, including most of the languages in your list.

 

Not true.

 

Python is even slower than Java. Don't. Just don't.

 

Here you go:

https://github.com/Leushenko/ybc

 

Also, if you like Clojure, try Common Lisp (SBCL).

Okay there was some issues with my thing

also the ybc compiler uses Blitzmax which I still cannot get the stupid blitzmax compiler to work

 

Python is slower than Java, but even then Java is not the slowest language out there. I also never even mentioned Python's speed compared to Java.  Python is still fundamentally better than C

C++ has been more documented (to C) when I looked anything up not language specific

"Except that almost everything is fundamentally written in C, including most of the languages in your list."
Ak... uh... umm... not wrong. Not exactly right either.

Also the most I seen C used for is Compilers/interpreters (which it does better than C++), Game engines, some really big complex cool stuff. 


I admit I was wrong here BUT my point still stands that C is not a beginner language

Link to comment
Share on other sites

Link to post
Share on other sites

9 minutes ago, Dat Guy said:

Also, if you like Clojure, try Common Lisp (SBCL).

And I forgot to mention this. I love clojure and SBCL but I still prefer Clojure (based off of syntax looks not actual use)

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, SafyreLyons-5LT said:

but even then Java is not the slowest language out there

Because Python is. Only one of the reasons to avoid Python.

 

1 minute ago, SafyreLyons-5LT said:

Also the most I seen C used for is Compilers/interpreters (which it does better than C++), Game engines, some really big complex cool stuff. 

I write websites in C.

 

2 minutes ago, SafyreLyons-5LT said:

C is not a beginner language

Every language is a beginner language if it is the first language you're using. Good C++ is incredibly complex to write, C is notably easier.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, Dat Guy said:

Because Python is. Only one of the reasons to avoid Python.

Python is still very much beginner friendly and usable. Google uses Python, YouTube uses Python, Discord uses Python, parts of Google Chrome, Patreon uses Python, Fucking Electron (A NODEJS MODULE) has PYTHON CODE, Gnome (linux desktop environment) uses python in some areas.

So if there is many reasons to avoid Python than why do all of these use Python. Not to mention the thousands of other apps made with it.

1 minute ago, Dat Guy said:

I write websites in C.

Okay, many websites (that don't use Python or JavaScript of course) use C in some capacity. Twitch is one of the bigger examples.
 

9 minutes ago, Dat Guy said:

Every language is a beginner language if it is the first language you're using. Good C++ is incredibly complex to write, C is notably easier.

I only recommended C++ as an option because I have seen more job openings (mostly in game development (thanks to Unreal Engine)). Yes C can be a beginner language I just don't recommend it as such. C++ I also even mentioned about being harder. I guess I should have said "C is not a good beginner language".

Python is still better because of the job openings, applications for using it, and also is much more friendly in the sense of syntax compared to C. 

C is still a good language to learn, not gonna lie. C is not good for a beginner though. Python is great for beginners, one of the most used, most documented (because... most used), most agile, most job friendly languages out there.

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, SafyreLyons-5LT said:

Google uses Python, YouTube uses Python, Discord uses Python, parts of Google Chrome, Patreon uses Python, Fucking Electron (A NODEJS MODULE) has PYTHON CODE, Gnome (linux desktop environment) uses python in some areas.

All of this is also true for C and C++. Python is the current go-to replacement for BASIC because you can make quick prototypes in it. That's all, honestly. It's sad to see that many people won't look beyond that and just stick with prototyping for most of their lives.

 

3 minutes ago, SafyreLyons-5LT said:

So if there is many reasons to avoid Python than why do all of these use Python.

Because many newcomers won't learn anything else.

 

5 minutes ago, SafyreLyons-5LT said:

Python is still better because of the job openings, applications for using it, and also is much more friendly in the sense of syntax compared to C. 

If you're after job openings, learn COBOL.

Which application does Python have that C does not? Also, the syntactical restrictions are ridiculous. You said you don't like Go, but you recommend Python? Oh my.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, Dat Guy said:

All of this is also true for C and C++. Python is the current go-to replacement for BASIC because you can make quick prototypes in it. That's all, honestly. It's sad to see that many people won't look beyond that and just stick with prototyping for most of their lives.

I use python, but I learned C, and JavaScript. I can not do complex things in C yet but I am learning. I also don't ever use Python for prototyping, I use it for actual use.

I know it is a good language for prototypes but I don't use it as such. Also I mentioned companies that use Python (big ones) and a project in there too. Some of them don't even use C for backend (YouTube is one of them)

2 minutes ago, Dat Guy said:

Because many newcomers won't learn anything else.

Well you're technically not wrong | Reaction Images | Know Your Meme

not wrong sadly

 

3 minutes ago, Dat Guy said:

If you're after job openings, learn COBOL.

Which application does Python have that C does not? Also, the syntactical restrictions are ridiculous. You said you don't like Go, but you recommend Python? Oh my.

Okay.... let me explain. Yes COBOL has jobs, many in fact, more than Python (I just don't know COBOL enough to recommend to a beginner)

Go was because of a personal preference

To me this does not really resonate with me. My problem is that. I cannot resonate? I cannot recommend. It is too python-like without being fully python (like with me: C# is too Java-esque but not Java enough for me too be comfortable with 100%). Go also pisses me off with "by developers for developers" and trying to say it is perfect. 

package main
import "fmt"
func main() {
    fmt.Println("hello world")
}

Is there anything wrong with learning Go? Not at all, I just cannot recommend it myself. Nor anyone I know who used (or uses) Go can say they really 100% recommend it.

 

"Also, the syntactical restrictions are ridiculous."
I have ran into less issues with syntax in python than any other language. C has given me the most trouble, which is why I cannot recommend it to a beginner.

I only posted from experience and even though Python is there. I still recommend JavaScript (Node.js) far more than Python. I posted from my opinion which all "what programming language should I learn first" are. I don't know why we went into a huge debate about this. It is all opinion, there is no real "fact" behind it.

"Learn C first" is an opinion
"Learn Python first" is an opinion

I am tired of people getting all worked up about this and trying to prove me "wrong".

Link to comment
Share on other sites

Link to post
Share on other sites

7 minutes ago, SafyreLyons-5LT said:

Go also pisses me off with "by developers for developers" and trying to say it is perfect. 

To be fair, two of the three designers of Go knew pretty well what they were doing as they had been working on high-quality development tools for decades. Admittedly, Rob Pike (one of them) can be very strict in his public opinions though. And he's right most of the time ... ;)

 

I don't like Go either, it is too pythony for my taste. But I'm glad that they adapted the ":=" operator.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, Dat Guy said:

But I'm glad that they adapted the ":=" operator.

SAMEEEE!!! That was nice!!

But I wouldn't say Go is for everyone, try it but I personally hate it

Link to comment
Share on other sites

Link to post
Share on other sites

11 hours ago, AndreiArgeanu said:

Hi. I am kind of new to the whole programming thing, I have myself some experience in Android Studio working a bit there and I can understand some C# code perhaps.

Now I plant to use it to make stuff, don't really know what "stuff" but I plan using stuff like arduino and raspberry pi's for my projects. I was thinking of C++ as both the arduino and raspberry pi support the language but visual studio on pc which I would use to communicate with such devices runs in C#. So yeah I need help.

You can use visual studio for C++ too. You don't really need to though, Arduino provides their own IDE and for simple programs C++ is almost entirely interchangeable with C.

4 hours ago, Dat Guy said:

Which application does Python have that C does not? Also, the syntactical restrictions are ridiculous.

The syntactic "restrictions" in Python are there to enforce decent style as much as possible. Given how so many people have an awful style I see that as a net positive.

 

As for use cases for which python is a better choice than C - frankly the answer is most things. It's rare to actually need the lower level access and extra execution speed C provides nowadays and Python is easier and therefore faster to use.

 

You could also use assembly for whatever you're writing and it would probably be faster than a C implementation (provided you know what you're doing) but... why would you unless you had no choice? It's important to be able to choose the best tool for the job and very often C isn't it.

4 hours ago, SafyreLyons-5LT said:

To me this does not really resonate with me. My problem is that. I cannot resonate? I cannot recommend. It is too python-like without being fully python (like with me: C# is too Java-esque but not Java enough for me too be comfortable with 100%). Go also pisses me off with "by developers for developers" and trying to say it is perfect.

Go is an attempt to bridge the gap between high level languages like Python and faster languages like C/C++ and arguably a very successful one. I don't think anyone is claiming it's "perfect" but... even if someone did, who cares?

 

Personally I prefer Rust, which is a different take on that concept and closer to my personal taste, but Go is objectively a very good language.

6 hours ago, SafyreLyons-5LT said:

Kotlin: Like Java but for Android

Kotlin isn't exclusive to Android and while it uses the JVM it has quite a few improvements to the syntax. Also you can write Android apps in Java, for a long time it has been the only supported language in fact (unless you count native code - I wouldn't).

6 hours ago, SafyreLyons-5LT said:

? Not used much anymore (being replaced by C++), harder to learn, not used everywhere (still more recommended than anything else in this list)

I would disagree on that, C++ isn't a direct replacement and there are still areas where C excels and is still heavily used. One of the best examples of this is the Linux kernel which is written entirely in C.

Don't ask to ask, just ask... please 🤨

sudo chmod -R 000 /*

Link to comment
Share on other sites

Link to post
Share on other sites

13 minutes ago, Sauron said:

enforce decent style

I decide what a decent style for my applications is. If a language does not let me do that, the language is not a tool, it tries to make me a tool. And I won't accept that.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

5 hours ago, SafyreLyons-5LT said:

 I also don't ever use Python for prototyping, I use it for actual use. I know it is a good language for prototypes but I don't use it as such. Also I mentioned companies that use Python (big ones) and a project in there too. Some of them don't even use C for backend (YouTube is one of them)

The stance is anything you can do in Python, you can do in C. So once you're done proving your design works in Python, you should implement in C. Whether or not you agree with that sentiment is a personal choice based on what you really need.

 

Though I could be wrong entirely, but whatevers. I do what works best for me ¯\_(ツ)_/¯

Quote

I am tired of people getting all worked up about this and trying to prove me "wrong".

People will have their personal preferences in how software development should be done and all of the things you should or shouldn't be doing. In my view, I see it as long as you're using a language that has the basic, common features of most programming languages, the language itself is a minor detail.

 

The only reason why I recommend Python over anything else for absolute beginners is not really how easy the language itself is, it's how easy it is to get started. I imagine most budding programmers don't care about the nuances of setting up a development environment from code editing to compiling. Sure to the "experts" they could do it in their sleep and people should learn how to set up an environment, but I'd rather have this be as easy as possible to encourage their curiosity.

 

7 hours ago, SafyreLyons-5LT said:

-C: Not used much anymore (being replaced by C++), harder to learn, not used everywhere (still more recommended than anything else in this list)

I'd argue C is widely used and not being replaced. Someone's got to program the micros that live in your electronics and everything else is simply too cumbersome or unnecessary for the task, if it's even supported.

Link to comment
Share on other sites

Link to post
Share on other sites

At this point imma just gonna ignore this because I been wrong here. Too lazy to delete the post too

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, SafyreLyons-5LT said:

At this point imma just gonna ignore this because I been wrong here. Too lazy to delete the post too

You're not wrong in a lot of things. It's just that how people program is such a personal thing. At the end of the day the only thing that matters is if you can produce software that works.

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, Mira Yurizaki said:

You're not wrong in a lot of things. It's just that how people program is such a personal thing. At the end of the day the only thing that matters is if you can produce software that works.

Fair point

Link to comment
Share on other sites

Link to post
Share on other sites

6 minutes ago, Dat Guy said:

I decide what a decent style for my applications is.

Nah, the people who have to work with you do.

7 minutes ago, Dat Guy said:

If a language does not let me do that, the language is not a tool, it tries to make me a tool. And I won't accept that.

Do you have a choice on whether to use semicolons or not in C? Every language enforces some style, Python only enforces enough to ensure it doesn't look like absolute trash. Whether you like it or not is up to you but it's hardly an objective complaint.

Don't ask to ask, just ask... please 🤨

sudo chmod -R 000 /*

Link to comment
Share on other sites

Link to post
Share on other sites

17 hours ago, Mira Yurizaki said:

At the end of the day the only thing that matters is if you can produce software that works.

.... and that is maintainable.?

Link to comment
Share on other sites

Link to post
Share on other sites

I'm going to suggest C++. Once you understand everything in that language and its ability, you'll be able to stroll into more modern languages really easy. Maybe combine some C# with it too, as both are extremely powerful

hi

pipes
Undervolting 5700 (not mine but important)

 

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

×