What programming language should I try to learn first?
I am just learning to program in high school, but I am already learning HTML and CSS and Javascript. What should my next programming language be? I am going to go to college and I would like to start learning my next language now so I can be ahead of things for college. I know that "it depends", but I'm not sure what it depends on, and if I just want the best general option, which one do I start with? #programming #computer-programming #software-development #java #python #ruby
33 answers
Bryan’s Answer
The best programming language to learn is whatever your friends are using. There are a lot of benefits to collaborating with someone else and sharing code. If you're flying solo I would recommend the following progression:
Python ~ Easy to learn. Simple intuitive syntax. Very readable, it's almost pseudo-code. Large base of supporting libraries. Well suited for smaller projects.
C++ ~ Powerful, feature rich, complicated. Allows you to access memory directly and do all sort of other things that you should understand how they work, but probably shouldn't do. It's also very efficient and good for use in larger collaborative projects.
A professional interest language or two ~ Pick a language or two that is in high demand and reflects what you have a professional interest in. e.g. Javascript or SQL.
A personal interest language ~ Interested in A.I.? Go learn Lisp or Scheme. Like operating systems? Go learn C. Like hardware? Learn some assembly.
Once you've picked up about 4-5 core languages I'd suggest stopping. Breadth is important to get a good overview of the domain, but depth makes you much more efficient. Let your career drive further learning at that point.
Adam’s Answer
IMO, the best general option: Python. Rationale:
- Quora uses Python
- Dropbox uses Python
- Friendfeed was using Python (at least before they got acquired)
So essentially many impressive teams chose Python. Plus, MIT's online algorithms course uses Python: http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/. In summary, Python is the most practical option because of the libraries available and the developer community.
That being said, I recommend learning a wide variety of languages. In particular, going through Kernighan and Ritchie's book on C will help you to learn indispensable lower-level programming concepts. Learning a very high-level functional language like Haskell, OCaml, or just plain good old Lisp would also be really useful since a wide variety of problems are most succinctly solved in functional languages, and they tend to be languages of choice for academics.
Oren’s Answer
Go for Python or Ruby. There are some really great resources online that will help you with both. You'll have the most fun with this guide to Ruby: http://www.rubyinside.com/media/poignant-guide.pdf
When thinking about this choice, don't consider it one over the other, but focus on the practical skills you'll be learning: syntax and how to break problems into smaller pieces.
Will’s Answer
I would say Python would be the best option. There's plenty of options available out there and it's real fun to play with once you understand the language.
Java would be the next option as you progress and should be an easy transition.
Regardless what language that you immerse yourself into, there's always plenty of free resources and training available to help you.
Manraj’s Answer
A good one to look into for backend development might be node.js since you already have a start on javascript. Outside of that, as previous posts mentioned, PHP or Python are good starters too!
Jason’s Answer
I will suggest Java as your first language as it was mine as well. It brings the concepts of Object Oriented Programming without having to deal with as many of the complicated parts of programming that C or C++ seem to bring. It's very elegant and widely used in the industry today, and can easily lead into Andriod development if you get interested in that. C++ is also a language that it becomes really easy to flow into after learning Java.
As suggested above, Python is also a great language to pick up early as it is dynamic and provides a good understanding of several fundamentals of programming.
Karina’s Answer
Luke’s Answer
With your stated goal of "getting ahead in college" the only question I have is: what college are you going to and what to they teach in?
At the school I went to C++ was the primary language of instruction. You were welcome to code in almost any language you liked, but if you wanted helped from your peers or concrete examples from the lectures then you were working in C++ or perhaps Java. If that's your goal then answer that question and you have an answer to your question. =)
You already know or are learning Javascript, so you'll be able to easily pickup node.js and build quick web applications with a familiar language. If you're looking for more realworld "what's next?" then take what you know and build on it. Learn node.js, build some quick prototypes and put them up on hackernews. You'll learn more about frameworks, design patterns, etc from just doing and building. Ultimately, it doesn't matter what language you know for most just-out-of-school jobs. What will impress employers is a deep understanding of one language or framework. After that it's easy to jump around between languages and tools when you have a task to complete.
Michael’s Answer
As a first language, I would suggest Python. Unfortunately it took me over 5 years of programming before starting to learn Python. It gives you an introduction to a number of important programming fundamentals and helps you write better code.
C or C++ are good for learning more complicated aspects of programming and computer system internals.
Depending on what you want to do after college, JavaScript and Java are probably the next ones to learn.
Sriram Phani Kumar’s Answer
"A good developer knows to choose the right language for the right purpose". Read a version of this some where and I strongly believe in that. In general knowing one Object Oriented language and one scripting language would be very handy and you can consider yourself well equipped. Once you know a language very well learning another would be pretty easy.
Having said that some of the best choices would be Java for Object Oriented language and Python for scripting language.
Aditya’s Answer
I guess to get started Java is the best object oriented paradigm. Having said that Python is a very good and easy to learn programming language which covers a object oriented programming, functional programming. http://www.codecademy.com/ has a good course on python. I took that to learn Python :)
Ravi’s Answer
Since you are looking for the best general option and are at a beginner stage I would recommend Python. Python is a simple language but will set you up with good fundamentals. A good chunk of free online courses that you get are also in Python.
Once you develop a good level of comfort with it you should move on to Object oriented programming languages like Java.
Julia’s Answer
Python is a great programming language to learn! You can do a ton of different things with it, and it's pretty easy and really fun.
anat’s Answer
you can also search in Youtube/Google and then going from there.