• Some users have recently had their accounts hijacked. It seems that the now defunct EVGA forums might have compromised your password there and seems many are using the same PW here. We would suggest you UPDATE YOUR PASSWORD and TURN ON 2FA for your account here to further secure it. None of the compromised accounts had 2FA turned on.
    Once you have enabled 2FA, your account will be updated soon to show a badge, letting other members know that you use 2FA to protect your account. This should be beneficial for everyone that uses FSFT.

What's a good programming language to learn?

RyuKenLi

Limp Gawd
Joined
Feb 6, 2006
Messages
167
I'm trying to learn more about OOP. What's a good language to learn as my first programming language? I'm trying to learn SQL after. Thanks for your guys input.
 
if you are wanting to learn SQL, then are you looking into programming websites?
 
It's more for enhancing my skillset for business use. Learning more about databases.
 
It's more for enhancing my skillset for business use. Learning more about databases.
If you're looking for recommendations on resources, then we'll need more information. What are you hoping to do? What problem(s) are you wanting to solve? How do you see your efforts being used?

All of this, and more, is important; it lets us know what direction you're heading, and can advise appropriately.
 
Thank you for the responses. I'm an accounting graduate student with an strong interest in IT Audit.

I'm learning a language to have more exposure to IT. I don't think IT Auditors do any coding, but I'd still like to learn a language. I have some background in SAP/ERP systems. Besides that, it will be one of my hobbies.
 
Last edited:
Some SQL wouldn't hurt, especially if you are or will be doing more work with SAP/ERP systems. (Thinking of custom reports here.)

Picking up some fundamental programming logic concepts would help -- if, loops, etc. -- and any of the languages listed above could get have you tinkering very quickly.
 
This question comes up periodically. Here's what happens:
  1. Someone posts "what language should I learn?"
  2. Someone else asks for more information.
  3. Maybe the OP responds, maybe not. If they do respond, they don't include nearly enough information to make any sensible recommendation.
  4. Some people insist on certain languages even in that void of information, others insist on other language.
  5. Mostly, these posts are without reason or insight.
  6. Some arguing, sometimes a lot of arguing, none benefiting the OP.
  7. The OP never returns.

Will this thread be any different?

If your goal is to learn more about databases, then learning an OOP language won't help. Learning SQL won't help much, either. You want to learn about relational theory, modeling, and maybe some of the newer non-relational technologies. If you're interested in SAP or ERP systems, then you can try to slant your modeling specific to those systems -- particularly if you're working with a specific vendor.
 
I return! I want to learn a language because when you interview for IT internships. They normally ask if you have learned a programming language. Although you may not use it, interviewers like to weed out people. I remember using SQL in one of my accounting technology classes. That's why I thought SQL would've been useful. Since I'm still in college, I'm trying to build a skillset and gain some experience through internships.

Thank you for the advice.
 
I would have thought knowing how to program was a requisite for IT.
 
Java.

Very dominant in the enterprise...especially since it runs on everything, including various flavors of *nix. It also supports enough features to allow you to explore true OO design, design patterns, and idioms. There are also thousands of supporting libraries and frameworks freely available...as well as free containers (e.g., Tomcat, JBoss) and IDEs.


Of course, learning a language doesn't mean that you will learn OO. You can write functional Java. Read books. Here are a couple that are fairly good for someone new and who wants to learn a little about OO using Java and coding in general:

Beginning Java: http://www.amazon.com/Beginning-Java-Ivor-Horton/dp/1861000278

Code Complete: http://www.amazon.com/Code-Complete...=sr_1_1?s=books&ie=UTF8&qid=1328762503&sr=1-1

Yeah, there are dozens of others that are classics and core to a professional developer (Design Patterns, Pragmatic Programmer, various books on Swing, Hibernate, J2EE/JEE, UML, methodologies, anything by Rod Johnson)...but don't let the height of the mountain in front of you stop you from taking a hike and seeing some of the sites. :)
 
As an Amazon Associate, HardForum may earn from qualifying purchases.
Java, C#, JavaScript/CSS
CSS is a style sheet language, not a programming language.

My advice: learn whatever language is best-suited to the kinds of applications you want to build. In your field, Java and C# are potentially useful if you ever have the need the ability to quickly develop small utility applications.
 
I'd argue that a knowledge of networking, security, or database theory would be far more beneficial than just learning SQL if you're interested in IT auditing.
 
Last edited:
FORTRAN

seriously though, is this MS SQL? If so, I'd probably go with C#. If it's some other brand of SQL, then the answer changes.
 
I was using MS SQL for Access for this one class. Never used it since, so I don't know what's business practical.
 
I believe most university CS programs start with Java. It really doesn't matter which language you learn first, because once you understand the concepts of programming, you'll be able to pick up new languages with relative ease.

Also, check out the TIOBE Index each month to find out which languages are the most popular, moving up, etc..
 
Thanks, I think the Information Systems majors at my college start with Java as well.
 
A lot of universities use Java because it is free and a good language to learn object oriented programming.

However, I would suggest you learn C#. Most of the basic syntax is almost the same as Java. However, C# and .NET is a better language / platform. Also, if you want to use it on the job, I think there are more people looking for people with .NET experience in IT than Java. It is probably that universities don't want to endorse a product owned by Microsoft. You can still download the Visual Studio Express version which is free and a has a powerful IDE.
 
A lot of universities use Java because it is free and a good language to learn object oriented programming.

However, I would suggest you learn C#. Most of the basic syntax is almost the same as Java. However, C# and .NET is a better language / platform. Also, if you want to use it on the job, I think there are more people looking for people with .NET experience in IT than Java. It is probably that universities don't want to endorse a product owned by Microsoft. You can still download the Visual Studio Express version which is free and a has a powerful IDE.



Some fairly bold (and unsupported) statements there, which I won't bother to dispel. I will say, however, that the difference between "Java" (or J2EE/JEE) and .Net is far more than a language choice - it is also a choice of ecosystem. The Java ecosystem has an unparalleled collection of third-party (open-source and commercial) libraries, frameworks, containers, tools, etc...and .Net is nowhere even close to Java in this respect.


I also don't have a single client who wants to run Windows in production server farms. They use Linux or Solaris. How much .Net is running there? ;)


BTW, when your Windows client connects to the Windows Update servers, do you think that you are talking to a Windows-based server? Think again. MS outsources it to Akamai...and all those servers are Unix-based. :)
 
Last edited:
A lot of universities use Java because it is free and a good language to learn object oriented programming.

However, I would suggest you learn C#. Most of the basic syntax is almost the same as Java. However, C# and .NET is a better language / platform. Also, if you want to use it on the job, I think there are more people looking for people with .NET experience in IT than Java. It is probably that universities don't want to endorse a product owned by Microsoft. You can still download the Visual Studio Express version which is free and a has a powerful IDE.

.Net is hardly a better language/platform. It's a better platform if you're looking to integrate applications into an existing Windows environment, sure, but it has its own limitations. Restricting yourself to a single development environment is not the way to go for looking good to potential employers.

Universities teach Java because it is current and is a relevant language to today's business environments. It has the same potential as many other languages, and requires good coding style and practices. Universities want to teach something that will instill practices that can be applied to future languages, rather than allowing you to fall into bad coding habits.

As far as universities go, there is no restriction of a university "endorsing" a product owned by MS. Look at this statement made directly on our website:
In an effort to save you money over the course of your academic career, all incoming undergraduate students are required to purchase a Microsoft Campus Agreement Software Bundle. This requirement will ensure that all undergraduate students have access to the latest versions of Office and the operating system. The bundle also provides you with upgrades for this software as long as you remain an undergraduate at Virginia Tech.
 
Some fairly bold (and unsupported) statements there, which I won't bother to dispel. I will say, however, that the difference between "Java" (or J2EE/JEE) and .Net is far more than a language choice - it is also a choice of ecosystem. The Java ecosystem has an unparalleled collection of third-party (open-source and commercial) libraries, frameworks, containers, tools, etc...and .Net is nowhere even close to Java in this respect.


I also don't have a single client who wants to run Windows in production server farms. They use Linux or Solaris. How much .Net is running there? ;)


BTW, when your Windows client connects to the Windows Update servers, do you think that you are talking to a Windows-based server? Think again. MS outsources it to Akamai...and all those servers are Unix-based. :)

I didn't support my statements because I figured it would be obvious it was my opinion. By the way, you didn't support your claims either -- oops. As far as windows in production server farms... that depends largely on the type of IT you are planning on doing. There are probably many smaller companies who need IT professionals who use various tools written in .NET and never deal with Linux and Solaris server farms.

While Java may more flexible to run on various architectures and operating systems, .NET has some features that make it stand out from Java. I also believe it is a better managed language with better performance in some cases.

.Net is hardly a better language/platform. It's a better platform if you're looking to integrate applications into an existing Windows environment, sure, but it has its own limitations. Restricting yourself to a single development environment is not the way to go for looking good to potential employers.

Universities teach Java because it is current and is a relevant language to today's business environments. It has the same potential as many other languages, and requires good coding style and practices. Universities want to teach something that will instill practices that can be applied to future languages, rather than allowing you to fall into bad coding habits.

As far as universities go, there is no restriction of a university "endorsing" a product owned by MS. Look at this statement made directly on our website:

Sounds like you have something personal against Microsoft and Windows. Are you claiming that .NET does not instill practices that can be applied to future languages? Are you implying that it will force someone to fall into bad coding habits? Hmm....

I think the original poster should pick something he will be able to stick with and succeed in and perhaps you should go check out the job postings for the area of IT you think you would be interested in and see which technologies people are asking for, then start from there.
 
Sounds like you have something personal against Microsoft and Windows. Are you claiming that .NET does not instill practices that can be applied to future languages? Are you implying that it will force someone to fall into bad coding habits? Hmm.....

I use MS products every day. All of my computers run Windows. I have programmed in .Net for a previous job. I hardly have anything personal against MS/Windows. .Net has quirks that can force beginning programmers to become complacent in what they expect programming languages to do. So yes, it has the potential to instill bad coding habits. Every language does, but some are a lot more strict (Java) in what they allow programmers to get away with in terms of when they throw exceptions or deny compilation.
 
This thread is quickly sliding down the "my language can beat up your language" slope.

Python was my first real programming language, and I found it a good stepping stone to other opportunities, both educationally and professionally. I can only recommend it on the basis of being (IMO) easy to learn though, as you failed to provide many details about computing experience, OS environment, educational background, and other relevant factors.
 
I still say C is the language to go with. It's simple and doesn't force you to learn a lot of concepts all at once. You learn about basic data types used in programming, and understand how it expands into larger systems. You also focus on the basic concepts that are universal to any language but it's still very simple.

Forcing someone to hack together object oriented concepts just to print to the screen is kind of silly. And forcing object oriented design doesn't lead to better organized programs in any sense. Anyone who thinks getters and setters on a Vector3D class is a good idea is bonkers. You're not abstracting or hiding anything. But I see Java code all the time that is written like that. C lets you do whatever you want, and moving to C++ lets you pick and choose what features you want to use that relate to object oriented design.

But that's me, I still say learn C for a first language... you skip a lot of important fundamentals in my opinion otherwise.
 
I would either go with C# or Java. After using both, I lean more towards C#.
 
Most Oracle DBAs I know use perl. :)

- You do NOT want to learn OOP with perl.
 
I probably only come to [H] anymore to check the programming section and find mike, usually mocking and belittling people... Probably why I also like shows like Kitchen Nightmare's or Hell's Kitchen with Gordon Ramsey. Only to watch Gordon beat people down, although in the end he means well and people realize it eventually.
 
I don't even know what he means by step 5.

Read thread:
This question comes up periodically. Here's what happens:

  1. Someone posts "what language should I learn?"
  2. Someone else asks for more information.
  3. Maybe the OP responds, maybe not. If they do respond, they don't include nearly enough information to make any sensible recommendation.
  4. Some people insist on certain languages even in that void of information, others insist on other language.
  5. Mostly, these posts are without reason or insight.
  6. Some arguing, sometimes a lot of arguing, none benefiting the OP.
  7. The OP never returns.

I started on step 5, with 'brainfuck' because Mike's right. How many times have we seen this thread? Part of the problem is that the question is asked as if there's a right answer. But how can there be, when the question isn't even complete? "What's a good programming language to learn?" ... for what?

If you don't even have an idea, then perhaps you should just start with logic in whatever language your university or school offers. If that's not an option (e.g. not in school), decide on a project you want to do, try to scope it, and at least come here with a more thorough question.

Just my .02
 
I'm not sure what your definition of IT auditor is but from what I know, they will not be involved with code. I'm all for taking on programming as a learning experience regardless of how relevant it is to your career as its very helpful to one's logical and analysis ability. But if your main priority is to simply to boost your skills as an IT auditor, I think you may be better served investing that time learning something more directly relevant with that job first.
 
But if your main priority is to simply to boost your skills as an IT auditor, I think you may be better served investing that time learning something more directly relevant with that job first.

in my experience, the ability to come up with ineffective and time-consuming tasks and forcing those on people is the most relevant experience for someone seeking to be an IT auditor
 
Sounds like you want to do something to expand your knowledge. If you just take someone's advice for what you should learn, you'll get bored and stop. Instead brainstorm something that sounds like a lot of fun and could be useful for you. Maybe it's building a website, weather station, contact manager, media collection database, text-based adventure game, etc. Find something you're really interested in and then research the best ways to do it. You could even come back and ask "I've decided to take on XXX project, can someone point me in the right direction?" That will get you started and on then keep you on the right past out of sheer interest.
 
The IT Auditor/Director I will be working under my accounting internship started as a programmer. So I thought I'd follow a similar route.
 
Back
Top