Jump to content

New programmer, language question

Hi P

I know for a fact StackOverflow doesn't allow this type of questions, let me know if neither this forum.

 

Long story short:

In January I enrolled in a Computer Science program and began to learn the basics of Python 3 (for its simplicity) from the official website, along reading a book, from there my plan is to either begin calculus and algebra or intermediate Python topics.

 

Note: I'm aware programming languages are just a tool, but in terms of employability, some seem to be more demanding than others.

 

Having said that, which languages would you recommend me to learn first if my goal is anything but web development?

 

At this point I plan to learn these three first:

- Python

- Java

- SQL

 

The point of this thread is to read other suggestions on what languages to focus on for beginners, or some input on the aforementioned, so anything is welcome.

 

Thank you

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

Pythons probably the easiest route into programming, next to Visual Basic

Community Standards || Tech News Posting Guidelines

---======================================================================---

CPU: R5 3600 || GPU: RTX 3070|| Memory: 32GB @ 3200 || Cooler: Scythe Big Shuriken || PSU: 650W EVGA GM || Case: NR200P

Link to comment
Share on other sites

Link to post
Share on other sites

Python is a very in demand language because of it's versatility. It has uses it automation, data visualisation and AI to name a few.

 

All 3 are great choices, as far as is know SQL is the simplest of the three and is better for entry-level positions, it always advantageous to have from my understanding, but it is more database focused. I personally have spent more time learning Python. I find it really enjoyable and I'm beginning to see how, with the aid of modules, how useful and versatile it truly is. I plan to keep learning.

 

So as a beginner, I definitely recommend learning Python, it takes time to understand how the language thinks and processes things but you'll get the hang of it. I used this Udemy course and it was truly excellent, highly recommend. I'm well ahead of my class and learning better programming habits because of it.

PythonUdemy.jpg.1fd4c6967ebc033377ac6e6e85f3bf78.jpg

I found this article useful when looking for worthwhile languages and skills:

https://learning.linkedin.com/blog/top-skills/the-skills-companies-need-most-in-2018--and-the-courses-to-get-t

 

Here's another article I found useful:

https://www.techrepublic.com/article/forget-the-most-popular-programming-languages-heres-what-developers-actually-use/

 

Just my two cents, relatively inexperienced compared to others on the forum so hopefully they can give you some more insight.

Link to comment
Share on other sites

Link to post
Share on other sites

39 minutes ago, ZacoAttaco said:

Just my two cents.

All that was really helpful! I'm checking those sites right now.

 

I added SQL after reading a couple posts mentioning it as a nice-to-have language, but I wasn't aware it was easy :)

 

Link to comment
Share on other sites

Link to post
Share on other sites

20 minutes ago, Hi P said:

I added SQL after reading a couple posts mentioning it as a nice-to-have language, but I wasn't aware it was easy :)

To be honest, I'm not very familiar with SQL but I know it's more database focused, there are even people who aren't specifically involved in IT have some working knowledge of the language. If you can learn Python, you can learn SQL. ?

 

Once I have a solid understanding of Python, I'll begin to learn SQL too. I'm looking forward to it.

 

Some more info on SQL:

https://www.quora.com/Is-SQL-easy-to-learn-compared-to-other-programming-languages

Link to comment
Share on other sites

Link to post
Share on other sites

Depending on what job(s) you get, I feel like you'll need to use SQL at some point inevitably

Though that would be learned alongside Python or Java

(My preference personally would be Python)


 

Link to comment
Share on other sites

Link to post
Share on other sites

6 hours ago, Slottr said:

Pythons probably the easiest route into programming, next to Visual Basic

the last stable release of visual basic was 21 years ago, I highly recommend not going down that route.

                     ¸„»°'´¸„»°'´ Vorticalbox `'°«„¸`'°«„¸
`'°«„¸¸„»°'´¸„»°'´`'°«„¸Scientia Potentia est  ¸„»°'´`'°«„¸`'°«„¸¸„»°'´

Link to comment
Share on other sites

Link to post
Share on other sites

I also recommend Python. I'm actually in school for IT and one of the classes I took last year was a basic Python class and as ridiculous as it sounds, the book we used was called "Python for Kids" and it was actually a really good resource since my instructor was mostly crap ? I'm now going into SQL, and that's a very in-demand skill in a lot of jobs so that would be another great one to learn in general.

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, vorticalbox said:

the last stable release of visual basic was 21 years ago, I highly recommend not going down that route.

Definitely not, but even if- it's probably the most "hold your hand"

Community Standards || Tech News Posting Guidelines

---======================================================================---

CPU: R5 3600 || GPU: RTX 3070|| Memory: 32GB @ 3200 || Cooler: Scythe Big Shuriken || PSU: 650W EVGA GM || Case: NR200P

Link to comment
Share on other sites

Link to post
Share on other sites

20 minutes ago, Slottr said:

Definitely not, but even if- it's probably the most "hold your hand"

Maybe but if he is starting with Python then Java or C# is very quickly learned and both great choices. C# structure is the closer of the 2 to Python.

 

As for SQL it's a good choice but it's not a programming language. It's a query language. I have yet to find a place that i worked or have collaborated with that did not make some use of SQL databases once in their existence. Okay some used excel ?

 

Once you have an application language (Python, Java, C#) and have SQL for Databases they will be useful for life. You may not program with them 20 years from now but the logic and structure always circle around the same principle.

 

By that I mean that you don't care the language in the end, if you want to query an SQL database you know you are looking for an SQL connection object of some kind and an SQL command object or method. Knowing the language just make the typing faster. I've had interns with no experience in a language wanting to learn a new one coming in and i was making them do small project and just by knowing the terms and general logic of things they could google their way through the projects and learn at their rhythm.

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

depends very much on what you want to do with it "anything but web development" is pretty broad.

 

over time you wont get around learning a bit of them all. a bit of SQL is always good to have and i would consider it to be basic knowledge as much as office word and excel are. JAVA i have successfully avoided till now and i dont plan on learning it its mostly becasue i dont see were i would need it were i couldnt use others. PYTHON is great if you wanna mess around with rasperry pis and a great start. i personally started with C# in college and have learned a bit of almost everything since then. c# for is the best place to be but obviously im bias and thats just becasue im the most familiar with that one. C++ is bit harder to get into but once you know it you practically hold the master key. it runs on pretty much anything is very helpful in game development but also other projects where lowlevel acces to ressources is important. if you wanna go hardcore and count processor ticks and be aware of every byte you waste then o for C. very low level. used in microprocessors but as i come from the windows world where timing isnt exact and noone cares if you use a signed or unsigned integer nor what size it is i find C annoying. but thats just me.

"You know it'll clock down as soon as it hits 40°C, right?" - "Yeah ... but it doesnt hit 40°C ... ever  😄"

 

GPU: MSI GTX1080 Ti Aero @ 2 GHz (watercooled) CPU: Ryzen 5600X (watercooled) RAM: 32GB 3600Mhz Corsair LPX MB: Gigabyte B550i PSU: Corsair SF750 Case: Hyte Revolt 3

 

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, cluelessgenius said:

depends very much on what you want to do with it "anything but web development" is pretty broad.

 

JAVA i have successfully avoided till now and i dont plan on learning it its mostly becasue i dont see were i would need it were i couldnt use others.

 

C# for is the best place to be but obviously im bias and thats just becasue im the most familiar with that one.

Yeah, at this point I just now what I don't like (web dev), rather than what I like.

 

Mind if I ask something? I was told C# is Windows only whereas Java is supported everywhere, so I saw Java like a C# on steroids (from my perspective)

 

Is that completely not the case?

Link to comment
Share on other sites

Link to post
Share on other sites

21 minutes ago, Hi P said:

Yeah, at this point I just now what I don't like (web dev), rather than what I like.

 

Mind if I ask something? I was told C# is Windows only whereas Java is supported everywhere, so I saw Java like a C# on steroids (from my perspective)

 

Is that completely not the case?

well yeah java is more compatible or was at least. C# used to be windows only and is mainly used for windows still BUT with things like Xamarin and Mono you can use it for other plattforms as well.

in general id always recommend going nativ though. so f you wanna write an app for windows use c# or UWP to be more exact (although hosted web apps are trending right now) and if you wanna write for android go java. Xamarin is fine but for anything more complex id always recommend going nativ. also mac would mean objective-c but that a whole different can of worms id rather not open.

Java also might run on windows but most applications i know are buggy as hell / a pain to work with. not sure why as i said i stay away from java.

 

tldr:; c# is not exclusivly windows but yeah it works best there. in any case its always best to go nativ and use the language of the system youre writing for....or you know...web apps (throws up a little bit in his mouth)

"You know it'll clock down as soon as it hits 40°C, right?" - "Yeah ... but it doesnt hit 40°C ... ever  😄"

 

GPU: MSI GTX1080 Ti Aero @ 2 GHz (watercooled) CPU: Ryzen 5600X (watercooled) RAM: 32GB 3600Mhz Corsair LPX MB: Gigabyte B550i PSU: Corsair SF750 Case: Hyte Revolt 3

 

Link to comment
Share on other sites

Link to post
Share on other sites

6 hours ago, vorticalbox said:

the last stable release of visual basic was 21 years ago, I highly recommend not going down that route. 

There might be some confusion in the naming between visual basic and visual basic .net.

One was marked obsolete in 2008, the other has a stable release as recently as August 14, 2018. However, I still wouldn't recommend either one.
 

1 hour ago, Hi P said:

Mind if I ask something? I was told C# is Windows only whereas Java is supported everywhere, so I saw Java like a C# on steroids (from my perspective)

From a language features standpoint, C# is likely to be viewed as immensely better than Java.

From a portability standpoint, C# is practically a non starter. Since the "runtime" and C# achieved ISO standardization, it's starting to become more and more portable, but the biggest problem is the lack of Miscrosofts .Net Class Library when running in non Windows environments. Overcoming that, however, is likely just a matter of time.

For a beginner, I would recommend considering C# as Windows only, since the vast majority of help resources, tutorials, and other information you will find about it will assume that you are developing for Windows.

ENCRYPTION IS NOT A CRIME

Link to comment
Share on other sites

Link to post
Share on other sites

10 hours ago, vorticalbox said:

the last stable release of visual basic was 21 years ago, I highly recommend not going down that route.

7 hours ago, Slottr said:

Definitely not, but even if- it's probably the most "hold your hand"

At that point, the OP might as well learn C#, you can use the same IDEs, similar style of programming but more relevant to the modern day. Still probably no where near like Python or Java.

Link to comment
Share on other sites

Link to post
Share on other sites

Python isn't the safest path to avoid web development - but with all the machine learning libraries and frameworks around or the broad usage in system administration and automation, not a bad choice.

As mentioned above: C and or C++ - very uncommon for web development nowadays, still widely used in the linux community or embedded devices - maybe also for IoT. Both not the most modern languages... but a lot of choices to work on.

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, wemu said:

Python isn't the safest path to avoid web development

It's a pretty handy scripting language, so no reason to avoid it imo. I learned python in school, and still use it to make small scripts for various things in my own workspace. I've made some git utility scripts, scripts that automatically apply eclipse workspace preferences, scripts for monitoring certain services and also do some basic static code analysis stuff. It's quick to write in, and so it's very nice for small scripts like that.

Gaming build:

CPU: i7-7700k (5.0ghz, 1.312v)

GPU(s): Asus Strix 1080ti OC (~2063mhz)

Memory: 32GB (4x8) DDR4 G.Skill TridentZ RGB 3000mhz

Motherboard: Asus Prime z270-AR

PSU: Seasonic Prime Titanium 850W

Cooler: Custom water loop (420mm rad + 360mm rad)

Case: Be quiet! Dark base pro 900 (silver)
Primary storage: Samsung 960 evo m.2 SSD (500gb)

Secondary storage: Samsung 850 evo SSD (250gb)

 

Server build:

OS: Ubuntu server 16.04 LTS (though will probably upgrade to 17.04 for better ryzen support)

CPU: Ryzen R7 1700x

Memory: Ballistix Sport LT 16GB

Motherboard: Asrock B350 m4 pro

PSU: Corsair CX550M

Cooler: Cooler master hyper 212 evo

Storage: 2TB WD Red x1, 128gb OCZ SSD for OS

Case: HAF 932 adv

 

Link to comment
Share on other sites

Link to post
Share on other sites

12 hours ago, cluelessgenius said:

if you wanna go hardcore and count processor ticks and be aware of every byte you waste then o for C. very low level. used in microprocessors but as i come from the windows world where timing isnt exact and noone cares if you use a signed or unsigned integer nor what size it is i find C annoying. but thats just me.

 As an assembler developer I can say that C is not "very low" level.  Assembler is also sometimes the only way to fit all your code on some architectures. Also most games are C or/and C++ with critical functions in assembler.  

 

Personally I would definitely recommend learning C, it's not hard to learn and you can basically do anything,  Yes you can dig deep within C but that is not necessary as a beginner. 

 

Link to comment
Share on other sites

Link to post
Share on other sites

On 2/25/2019 at 3:36 AM, Hi P said:

Having said that, which languages would you recommend me to learn first if my goal is anything but web development?

Write in C. (C also happens to be a superb web language if it matters one day.)

 

Also, I warmly recommend to take a look at Common Lisp and/or Racket, two members of the Lisp family of languages, both having "everything and the kitchen sink" available for you. Think of them as "Python with parentheses".

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

Python→Java→C→C++→C#→javascript is what I would recommend unless you wanna make website sites then replace the JavaScript 2nd and C# last. You should note besides Python, all other languages I mentioned share a similar sythax as that of c so they should be quite familiar to you if you kniw one of them 

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

8 hours ago, wasab said:

Python→Java→C→C++→C#→javascript is what I would recommend unless you wanna make website sites then replace the JavaScript 2nd and C# last.

Why should Java be learned as the second language? Why C# last or second to last? Why would one not interested in web technologies at all bother to learn Javascript (or any ECMAscript?) Why no form of assembly or functional language?

ENCRYPTION IS NOT A CRIME

Link to comment
Share on other sites

Link to post
Share on other sites

Python is a popular language because of its easiness and versatility. It's still an interpretated language though and can be slow compared to other native (or semi-native) languages and in some applications it's also slower than some other interpretated languages. 

 

Nowadays you can do a lot with those interpretated languages (Python, Javascrip, Ruby). Javascript offers the option to use one language for front- and backend web development and portable desktop applications (by using web technologies for the UI). The diferences between desktop and web apps become more and more blurry these days.

 

You should make up your mind about what you actually want to do. While you can do a lot of things with most languages, this possibility doesn't mean that any language is a good choice for every application. 

 

If you want to develop mostly Windows Desktop apps with some options for cross platform development, C# is a pretty good choice. If you want to do a lot of cross plattform, choose C++. If you want to do a lot of math and science stuff, deep learning, AI, automation and so on, Python is actually a good choice because of the amount of libraries around and its popularity amongst scientists. There are many resources for all three of those languages. Javascript is also a solid choice if you want to keep web development open for you. If Macs are your main focus, go Swift.

 

C is a powerful language but rarely needed these days unless you want to program microcontrolers or if you want to write deep system relevant stuff like kernel modules or drivers. Assembler is even closer to the underlying hardware and way less abstract but its use cases are narrow these days. There are applications that need Assembler (at least in parts) but this is usually not beginner stuff. This is not beginner level stuff - it's actually far beyond that.

 

There are other interesting languages around like Rust, Haskell, D, Objective-C and many more but imho none of them is suited as a beginner language. Same is true for older languages like Fortran or Cobol - both are still being used in certain fields and developers are in dire need. None of it is a good choice as a first language these days.

 

Java is quite a polarizing language: you either love it or hate it (granted, that's true for several languages like, i.e. Javascript). It needs the Java runtime machine that … could perform better. 

 

Bottom line: as long as you don't know you're in for niche applications your best choice is a language that is the most versatile and offers lots of resoruces and help. C++, C#, Python (see above for some differences between those).

 

P.S.: SQL is not a general programming languages. The only thing you do is work with databases reading and writing data from/to it. There's no logic beyond that.

Use the quote function when answering! Mark people directly if you want an answer from them!

Link to comment
Share on other sites

Link to post
Share on other sites

5 hours ago, straight_stewie said:

Why should Java be learned as the second language? Why C# last or second to last? Why would one not interested in web technologies at all bother to learn Javascript (or any ECMAscript?) Why no form of assembly or functional language?

Assembly is counterproductive, productivity and assembly code are inversly proportional. The more assembly you write, the more unproductive you are. And good luck having someone maintain that too. I can barely figure out what the heck I wrote on MIPS assembly a week ago. 

 

 

Functional is functions, functions, functions, and more functions. what else are there to learn?  

 

Java because it is easier than C++, but object oriented unlike C. Not to mention portability on all platforms. 

 

Learn JavaScript because it is also all platforms. All browsers in all OS can run that thing. 

 

Learn C because it is the lingua Franca of all operating systems. You need that low level to grasp the system fundementals. 

 

Learn C++ in case you need to do heavy graphics and games. 

 

C# last because it lacks portability and is essentially a java clone. What else to say?

Sudo make me a sandwich 

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


×