Jump to content

Which Language to learn?

Bakerking31

I was a CS major back in 2004 but ended up switching my major before graduating.  Now I would like to teach myself some basic programing.  Back in 2004 it was C++ ... I don't remember any of it.  I use a lot of Visual Basic for Excel in my daily work so I am not a complete noob to any type of programing but I am not up to date on anything current.

 

I run an UnRaid server and I see a lot of people on those forums using Python to create code to fix their particular issues, so I was leaning to Python.  It needs to be something that has a practical application to me or I will never learn it (just the way I learn).  I am not familiar with the options that are out there and what is best for what.  Any advise on where to look or what languages I should learn would be appreciated.

i5-6600k @ 4.5ghz || XFX RX-480 GTR || 16gb DDR4 || Lots of SSD's.

Link to comment
Share on other sites

Link to post
Share on other sites

If you're looking for something worthy of putting on a resume, the languages (At least last I checked) were:

  • C
  • C++
  • C#
  • Java
  • JavaScript
  • MySQL/SQL
  • PHP
  • Python
  • Ruby

It depends on what kind of application development you're looking at. If you're doing server maintenance or IT work, Python and shell scripting is probably the way to go.

Link to comment
Share on other sites

Link to post
Share on other sites

This would just be for me.  I wouldn't put it on a resume or look for a job in the field.  I am happy in my current job which is way outside the IT field.  I just want a project to advance myself.

i5-6600k @ 4.5ghz || XFX RX-480 GTR || 16gb DDR4 || Lots of SSD's.

Link to comment
Share on other sites

Link to post
Share on other sites

8 minutes ago, Bakerking31 said:

This would just be for me.  I wouldn't put it on a resume or look for a job in the field.  I am happy in my current job which is way outside the IT field.  I just want a project to advance myself.

I'd go with Python or JavaScript (using node.js), since they both have an a console interpreter you can use to play around without having to write up source files and such.

 

If you want to touch application development, I would say C# using Visual Studio Express is an easy way to get into it, assuming you're on Windows.

Link to comment
Share on other sites

Link to post
Share on other sites

There is no language you "should" learn.  What you need to know really depends on what you're trying to accomplish.  I use Perl every single day because I do a lot of text processing where Perl can't really be touched by any other language, for example.

 

Python as a genric language is ok.  c# is also verry powerful for creating GUIs and "real" tools.

Workstation:  13700k @ 5.5Ghz || Gigabyte Z790 Ultra || MSI Gaming Trio 4090 Shunt || TeamGroup DDR5-7800 @ 7000 || Corsair AX1500i@240V || whole-house loop.

LANRig/GuestGamingBox: 9900nonK || Gigabyte Z390 Master || ASUS TUF 3090 650W shunt || Corsair SF600 || CPU+GPU watercooled 280 rad pull only || whole-house loop.

Server Router (Untangle): 13600k @ Stock || ASRock Z690 ITX || All 10Gbe || 2x8GB 3200 || PicoPSU 150W 24pin + AX1200i on CPU|| whole-house loop

Server Compute/Storage: 10850K @ 5.1Ghz || Gigabyte Z490 Ultra || EVGA FTW3 3090 1000W || LSI 9280i-24 port || 4TB Samsung 860 Evo, 5x10TB Seagate Enterprise Raid 6, 4x8TB Seagate Archive Backup ||  whole-house loop.

Laptop: HP Elitebook 840 G8 (Intel 1185G7) + 3080Ti Thunderbolt Dock, Razer Blade Stealth 13" 2017 (Intel 8550U)

Link to comment
Share on other sites

Link to post
Share on other sites

I started with JavaScript. All languages are incredibly useful, but I feel like JS is kind of special to me. It was complex enough that you had to know what you were doing, but easy enough to learn (just be ready to bang your head against a wall when trying to learn jQuery). Python is my favorite because its easy to understand and can be used to create a multitude of things.

I'm learning c# right now so I can develop with Unity and Visual Studio.

 

Also, if you're a fan of Apple and the App Store, Swift is an incredibly powerful new language that is intuitive to learn; plus you can make an app that people will download (if you want to pay Apple $99 a year to publish your work).

DELETE! DELETE!

EXTERMINATE! EXTERMINATE!

Silence will fall.

 

PSU Tier List - I keep forgetting where this is so I'm going to leave it here.

Link to comment
Share on other sites

Link to post
Share on other sites

9 minutes ago, AnonymousGuy said:

There is no language you "should" learn.  What you need to know really depends on what you're trying to accomplish.  I use Perl every single day because I do a lot of text processing where Perl can't really be touched by any other language, for example.

 

Python as a genric language is ok.  c# is also verry powerful for creating GUIs and "real" tools.

This right here. You shouldn't make up useless project just for you to learn a language, but rather choose a language based on your projects.

I have worked with anything from C++ (Server back-end software), C# (Client front-end software), bash (system maintenance), Python (because I had to mess around with someone elses work).

 

At some point, you start to have the programming logic burned into your brain, so it doesn't matter *much* what language you are working with, since logic is applied the same across them all. 

Please avoid feeding the argumentative narcissistic academic monkey.

"the last 20 percent – going from demo to production-worthy algorithm – is both hard and is time-consuming. The last 20 percent is what separates the men from the boys" - Mobileye CEO

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, Bakerking31 said:

I run an UnRaid server and I see a lot of people on those forums using Python to create code to fix their particular issues, so I was leaning to Python.  It needs to be something that has a practical application to me or I will never learn it (just the way I learn).  I am not familiar with the options that are out there and what is best for what.  Any advise on where to look or what languages I should learn would be appreciated.

What exactly are you trying to do with programming?

ENCRYPTION IS NOT A CRIME

Link to comment
Share on other sites

Link to post
Share on other sites

My personal recommendation is Java or C#, they are widely supported (especially Java) and Java can run on any platform.  Python is good too, but the real thing is that it doesn't necessarily matter that much which language you choose, as long as you can use it to achieve your goal.  

 

I personally suggest Java.  But you can go with c++ or anything else if you want to instead.  I would say Javascript but in my opinion it has a couple twerks and weird things and can be a bit annoying unless you know how object oriented programming works, and know your way around datatypes, functions, basic operators and program structure.  

 

As to learn programming, of course it takes time and practice.  And experimentation and imagination.  But I suggest using a book, while online video courses are great I really think the classical book is the best way to follow along and learn a new language.  The main books you want to pay attention to are the ones with challenges,  such as this book here: https://www.nostarch.com/thinklikeaprogrammer.   Just my opinion.  

Link to comment
Share on other sites

Link to post
Share on other sites

34 minutes ago, straight_stewie said:

What exactly are you trying to do with programming?

To be honest, I am not 100% sure.  But I want to build my knowledge of programming in general so I know what is possible.  For example.  I was trying to get my Unraid box to connect with my SeedBox for some automated torrenting using the SeedBox rather than the torrent client on the server.  I read on several threads in LimeTech that this is possible and people got it to work using some fairly short python code.  While I could understand parts of what they were discussing, in general it was beyond my comfort zone.

 

Knowing what is possible to simplify my life for things like this is the reason I want to learn.  I don't know what exactly these things will be in the future but they will be small things like this that make life a bit easier.  As it stands, I tried looking through those threads and I am almost completely lost.  The code they wrote makes sense to a degree, I can understand what it is doing and where but I would not be able to write it.

 

I learned VBA in Excel because I needed it for work.  Being the only one in my office that was proficient with more complex VBA got me a promotion real quick actually because I could do things much faster than others.  While I am not looking to learn a programming language for work, being able to do things you didn't know where possible before is kind of the point in learning a language for me.

i5-6600k @ 4.5ghz || XFX RX-480 GTR || 16gb DDR4 || Lots of SSD's.

Link to comment
Share on other sites

Link to post
Share on other sites

Start with C++, Common Lisp and/or Perl. You won't regret any of those. You can still spoil your mindset with Python later.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

18 hours ago, Bakerking31 said:

To be honest, I am not 100% sure.  But I want to build my knowledge of programming in general so I know what is possible.  For example.  I was trying to get my Unraid box to connect with my SeedBox for some automated torrenting using the SeedBox rather than the torrent client on the server.  I read on several threads in LimeTech that this is possible and people got it to work using some fairly short python code.  While I could understand parts of what they were discussing, in general it was beyond my comfort zone.

Then you'll want to pick a general purpose programming language. Try C++ or C#. You could try Python, and that is the goto "first language" recommendation of many a people, but as @Dat Guy alluded to:

11 hours ago, Dat Guy said:

You can still spoil your mindset with Python later.


There are some, weird things (for lack of a better word) about python that can make you a lazy programmer.

ENCRYPTION IS NOT A CRIME

Link to comment
Share on other sites

Link to post
Share on other sites

20 hours ago, AnonymousGuy said:

There is no language you "should" learn.  What you need to know really depends on what you're trying to accomplish.  I use Perl every single day because I do a lot of text processing where Perl can't really be touched by any other language, for example.

 

Python as a genric language is ok.  c# is also verry powerful for creating GUIs and "real" tools.

python is extremely good at data processing and web scraping. It's also great for creating things like twitter bots.

 

I like python for how it strings more like an array and the fact its syntax is basically English its very good for beginners and great for treating prototypes quickly.

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

Link to comment
Share on other sites

Link to post
Share on other sites

Personal opinion here, I think Java is a good first language. Save the death threats, please.

 

Anyways, it's a fairly simple language without a lot of low level things to worry about. It's also used a lot. Like it or hate it, Java is used everwhere.

It's not hard and there's lots of good resources out there to help you learn. You should give it a shot :)

Link to comment
Share on other sites

Link to post
Share on other sites

3 hours ago, vorticalbox said:

its syntax is basically English

 

Also true for COBOL, Lisp, Assembly, BASIC, ... 

 

55 minutes ago, DeadlyGrnSpirit said:

Java is used everwhere.

 

Not outside schools. 

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

Android supports other languages as well; plus, Android is far from being identical to everywhere. 

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

I would start with a basic language like C/C++ or Java. Yes Python is easy to learn but it has some very own characteristics.

 

I started to learn a bit of Java then got introduced to C/C++. Since you don't need to deal with the "object oriented" "overhead" I would start with C/C++. 
Once you get your mind around how it works you can learn Java or C# or Swift or anything else. It doesn't really matter.

Link to comment
Share on other sites

Link to post
Share on other sites

20 minutes ago, stempifleig said:

Since you don't need to deal with the "object oriented" "overhead" I would start with C/C++.

If you intend to write clean C++, you'll have a hard time trying to work around the object orientation. Try to write a C++ application without anything from the std:: namespace which already requires basic OOP ... :)

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

10 hours ago, Dat Guy said:

Try to write a C++ application without anything from the std:: namespace which already requires basic OOP

using namespace std; helps
 

I know you can or should use OOP in C++ but in my opinion you should start with it. I learned basic C/C++ coding then learned OOP with java and then we learned how to use OOP also in C++. I really liked that approach.

Link to comment
Share on other sites

Link to post
Share on other sites

4 minutes ago, stempifleig said:

using namespace std; helps

 

Try to avoid using namespace. It will pollute your global namespace. Also, that's basically working inside the object - so it's still OOP.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, Dat Guy said:

 

Try to avoid using namespace. It will pollute your global namespace. Also, that's basically working inside the object - so it's still OOP.

Except if you have good practices and split out your headers well so you can put all the usings you want in your cc because it will never get included anywhere.

 

To answer the original topic without starting a flame war, I have seldom seens newbies do well with C++/Java/C#/<insert favorite heavily OOP language here> as their first language. You can learn C but why. I did the mistake of trying to force C++ down beginner programmer's throats because "it's the way you gain deeper knowledge". It's also the way you get so overwhelmed by everything and give up. A good starting point is a scripting language. Since you already have Python knowledge, I'd stick with that and it's a pretty solid language. Another thing you can try is Go (to a point). It's kind of a nice middle ground between scripting and production coding. If you really hate yourself or are interested in web, you can also give Ruby or PHP a shot + JavaScript to either one. You'd be able to build pretty robust web solutions in only a few weeks of coding and you'd feel very empowered. You can even try Node.js so you can learn just one language - JavaScript - and do both server and client code.

 

Aaaand with all of the above said, just pick something you like and enjoy. If you're a Lisp person or a Haskell or even a Brainf* person, no one will judge you, it's really cool you want to get to coding. Aiming for something that will "look good on a resume" or "is the right way to do things" won't really get you anywhere. Specifically by the things you outlined, I'd recommend you get some PERL or Python and learn bash (not really a language but a useful skill nonetheless).

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, Dobri said:

I'd recommend you get some PERL or Python and learn bash (not really a language but a useful skill nonetheless).

Thank you to everyone in this thread.  I think I am going to go with one of these so I don't get overwhelmed out the gate.  Thanks for all your help everyone.

i5-6600k @ 4.5ghz || XFX RX-480 GTR || 16gb DDR4 || Lots of SSD's.

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

×