Skip to main content
33 answers
34
Asked 49882 views

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

+25 Karma if successful
From: You
To: Friend
Subject: Career question for you

34

33 answers


9
Updated
Share a link to this answer
Share a link to this answer

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.

Thank you comment icon Awesome. Thank you. Im going to try to learn a couple of core languaes and then stop and see where I end up. Python! Jordan
Thank you comment icon That is great. I am learning Python now. Earl
Thank you comment icon python is so cool, thank you! Alex
Thank you comment icon Hi Bryan! Thank you so much for the comprehensive advice you provided to Jordan above! I had a few follow up questions I wanted to ask out of my own curiosity: 1. Could you talk a bit more about your own career path/how you chose the computer languages you currently know? I'd love to hear about your own path into computer programming, as well as any lessons/advice you may have for someone considering that type of work. Thank you so much in advance! Best, David David Ohta COACH
Thank you comment icon Hi David, My programming background began when I was a child learning Basic and Logo on the Amiga 500. My father had a tech background so I had early exposure to computers. My first job was in high school as a sysadmin for a tiny tech company that built ecommerce software. I mostly programmed in Bash there. In college I learned C++ as part of a mixed degree. When I graduated college I got a job as an operations manager running a SaaS product. Python was popular at the company so I ended up picking that up. Which served me well when I moved to Google as a systems engineer. I learned Go while working on a couple of different projects there. Now I'm back to managing and don't spend much time coding professionally. In my very occasional spare time I am playing around with Haskell. Bryan Gough
Thank you comment icon General advice (which applies to most careers):1) Love the act of doing the thing. So spend a bunch of your personal time doing it before signing up for a job or degree program.2) OR develop a high tolerance for working hard and use it as a stepping stone to something you're more interested in.More specific to programming:1) Love learning and never stop.2) Read this once a year: http://norvig.com/21-days.html3) Accept that you'll never be smart enough to be good at programming. No one is. The sooner you get your ego out of your way, the better you'll be though. Bryan Gough
Thank you comment icon Hi, For all people that are interested in python. The python community provides a free tutorial that has everything you need to know. It also branches into multiple specialty avenues. https://docs.python.org/3/ Enjoy! Heidi Maeder
9
3
Updated
Share a link to this answer
Share a link to this answer

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.

Thank you comment icon I agree. Python is a great language to get started, is useful for system level tasks and web applications (Django) and is a joy to learn and use. Ryan Blunden
Thank you comment icon nice your answer Renugadevi
3
3
Updated
Share a link to this answer
Share a link to this answer

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.

Thank you comment icon thank you Renugadevi
Thank you comment icon i like you Renugadevi
3
2
Updated
Share a link to this answer
Share a link to this answer

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.

Thank you comment icon Thank you. Is Python object oriented programming also? Jordan
Thank you comment icon While Python does have OOP(object oriented programming) concepts as well, its not as clearly defined/enforced in the language, so it better off learning these concepts in a language where this is quite key such as Java or C++. Jason Wan
2
2
Updated
Share a link to this answer
Share a link to this answer

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!

Thank you comment icon thank you Renugadevi
2
2
Updated
Share a link to this answer
Share a link to this answer

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.

Thank you comment icon Thank you Mr. Khoo Jordan
Thank you comment icon like for you Renugadevi
2
1
Updated
Share a link to this answer
Share a link to this answer

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.

Thank you comment icon thank you Julia Renugadevi
1
1
Updated
Share a link to this answer
Share a link to this answer

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.

1
1
Updated
Share a link to this answer
Share a link to this answer

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.

Thank you comment icon Almost everyone likes Python!!! Thanks for the help Jordan
1
1
Updated
Share a link to this answer
Share a link to this answer

Karina’s Answer

Recommend learning C first but if you are pretty sure that you are not interested in and will not be using C anytime in the future, then go ahead with Python.
1
1
Updated
Share a link to this answer
Share a link to this answer

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 :)

1
1
Updated
Share a link to this answer
Share a link to this 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.

Thank you comment icon Thanks Mr. Duncan. I don't know where I will go to college yet. I hope I can go to one of the UCs because I think they are more affordable, but I won't find out for a couple of years. Does every college use a different primary language for classes? Ugh :/ Jordan
Thank you comment icon Yes and no. A lot of schools still use C++ and Java. Java is a safe bet that it'll be supported in class. Java is usually pretty popular with big companies (Ford, Google, LinkedIn all have large java code bases). Languages like Python are used in more "modern" classes since it's considered both easy to learn and powerful. As many people noted a lot of younger companies use it. If you're years away pick a language that let's you solve a problem you're interested in. It'll be easy to switch to another I'm college. Python is likely that language as you can do web, robotics, etc with Python easily. Luke Duncan
Thank you comment icon so much for you Renugadevi
1
1
Updated
Share a link to this answer
Share a link to this answer

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.

Thank you comment icon Thank you. Yes, I'm a beginner, but I think I can still get really good at programming. It's fun! Jordan
1
0
Updated
Share a link to this answer
Share a link to this answer

Sanoop’s Answer

Python is considered to be the language that you can learn first becasue the learning curve in python is less comapred to others. The fact that it is an interpreted language makes one free from worrying about compiling etc. This is a good thing at first. However, if you are already familiar with operating systems to a decent level, then C is a good choice.There is renewed interest in C because of the surge in IoT. So to put it differently , to answer your question of which languauge is better, it depends. Unless you have any other preference , Python makes a good choice. Whichever, you choose,help yourself to cover to a decent level.It would help to learn others.
0
0
Updated
Share a link to this answer
Share a link to this answer

Jingchao’s Answer

I may recommend Java as the first "professional" language to learn. Just as Jason Wan mentioned, it introduces well enough of OO programing, and hides some tedious details that C does. Plus, it has some similar syntax or "feeling" as javascript, but totally different use cases.


Anyway, which language to learn is not as important as what philosophy you can learn behind the language. You can pick up OO programing by Java, and later after you feel comfortable enough with OO programing, you can continue to learn Scala and try to learn the idea of functional programing. That's a long journey, but you got the idea.

0
0
Updated
Share a link to this answer
Share a link to this answer

Xiao’s Answer

Echoing a lot of what have been said here already, I found Python to be a good starting point. It has a huge community online so it's easy to start and get help where you are stuck with your code.


Take a look at http://learnpythonthehardway.org/
It's a good starting point for Python.

0
0
Updated
Share a link to this answer
Share a link to this answer

anat’s Answer

I recommend to start with Python. there are lots of great online courses you can take , some free as well.

you can also search in Youtube/Google and then going from there.
0
0
Updated
Share a link to this answer
Share a link to this answer

Dinesh’s Answer

java and object-oriented programming will give you a long run
0
0
Updated
Share a link to this answer
Share a link to this answer

anat’s Answer

I recommend to start with Python. there are lots of great online courses you can take , some free as well.

you can also search in Youtube/Google and then going from there.
0
0
Updated
Share a link to this answer
Share a link to this answer

Ravindra’s Answer

Python
Python is always recommended if you're looking for an easy and even fun programming language to learn first. Rather than having to jump into strict syntax rules, Python reads like English and is simple to understand for someone who's new to programming.
0
0
Updated
Share a link to this answer
Share a link to this answer

Brian’s Answer

I feel that in order to answer this question i the best way, it would require a little more knowledge of what your interests are.


To elaborate, let me share my thoughts a bit deeper.


A computer language has the purpose of providing a way for the programmer to express what they want the computer to do. Come languages are complied into an executable binary, some are compiled into an intermedia byte-code, and some are interrupted on the fly. That really is not a point of focus for this.


What I would like to focus on is the purpose or fit for use of the language. There are languages known as Domain Specific Languages (DSLs) and languages known as General Purpose Languages (GPLs). For DSLs, they specialize in a particular domain or purpose. In that goal, they may hide some details of how to accomplish a particular task in order to facilitate a quicker time for implementation for the programmer, usually at the expense of flexibility.


For general purpose languages, I would consider a few particular categories and align those with your future goals.


In my education and career path, I followed a route of computer science. In pursuit of that, I was steered toward languages that were first structural in nature and then object oriented in nature. The benefit of first using structural languages is the stress on and ability to better understand data structures and algorithms. These core concepts build a foundation that is pervasive across (most) languages and for the most part a required pre-cursor when developing. Transitioning then to object oriented languages allows for the second level of foundational knowledge.


I am sure there are those that may suggest a different route, something directly at languages in use right now like JavaScript, Python, etc. My feeling is you won't be getting a full work out of what to consider when writing software. There are plenty of languages fully active now that can provide this foundational exposure that you can begin with and build on. Take for example Java. I feel this is an excellent language to start with and if your path takes you in the route of mobile software engineering, in particular, on the Android platform, the primary language used for that native development is Java.

0
0
Updated
Share a link to this answer
Share a link to this answer

Vinod’s Answer

Its great that you know HTML, CSS and Javascript.
Now if you want to be ahead of the game, I suggest you should start by learning good coding principles along with a popular language of choice ( I suggest Python, Ruby )
Once you have a handle of these languages and understand how to write code in them, you should focus on the designing acceptable (or near optimal) algorithms. Being ahead of the game means not only knowing a language but writing good code. Learning how to write good code will set you apart from the rest.

0
0
Updated
Share a link to this answer
Share a link to this answer

Bill’s Answer

If you are interested in building on the HTML and CSS you have already learned, there are some great languages used for web development. I would definitely suggest ruby, python, and javascript since all 3 have really well supported communities around their popular web frameworks (rails, django, and node.js) but are also great languages outside of web development.

0
0
Updated
Share a link to this answer
Share a link to this answer

Shobana’s Answer

Hi Jordan,

It is good to start with
1)Python (very simple) ,
2)c/c++ (understanding) ,
3)c#
4)JAVA
5)Angualar and node js
0
0
Updated
Share a link to this answer
Share a link to this answer

Ravindra’s Answer

Python is always recommended if you're looking for an easy and even fun programming language to learn first. Rather than having to jump into strict syntax rules, Python reads like English and is simple to understand for someone who's new to programming.
0
0
Updated
Share a link to this answer
Share a link to this answer

sashidhar’s Answer

Start by learning C. C will enable you to think in a mindset that is very close to the machine. It forces you to think about things like recursion, pointers, memory allocation. All these are useful in understanding how computers work. These are exactly the ideas that interviews test you on when interviewing.

Here are some great resources to read and understand the language -

https://www.amazon.com/Let-Us-Yashavant-P-Kanetkar/dp/8183331637

https://www.amazon.com/Programming-Language-2nd-Brian-Kernighan/dp/0131103628

0
0
Updated
Share a link to this answer
Share a link to this answer

Ravindra’s Answer

Python is always recommended if you're looking for an easy and even fun programming language to learn first. Rather than having to jump into strict syntax rules, Python reads like English and is simple to understand for someone who's new to programming
0
0
Updated
Share a link to this answer
Share a link to this answer

Ravindra’s Answer

Python
Python is always recommended if you're looking for an easy and even fun programming language to learn first. Rather than having to jump into strict syntax rules, Python reads like English and is simple to understand for someone who's new to programming
0
0
Updated
Share a link to this answer
Share a link to this answer

Simeon’s Answer

R and Python are both pretty good bets as far as programming languages go. I'd also recommend growing your familiarity with different versions of SQL, depending on the industry or companies you are looking to end up with. At the very least, get to know basic SQL more in depth.
0
0
Updated
Share a link to this answer
Share a link to this answer

Jonan’s Answer

There are a lot of people who will have an answer to this question and most of them are wrong. Pick the one you enjoy, focus on learning programming fundamentals like data structures and algorithms. Within the first few years of your career you'll learn that picking up new languages is relatively trivial, it's like learning a foreign language where only the punctuation is different.

That being said I have to put a pitch in here for Ruby. It's a beautiful and expressive language, very beginner friendly and the community is incredibly warm and supportive.

Best of luck!
0
0
Updated
Share a link to this answer
Share a link to this answer

James’s Answer

I will keep this short and sweet; learn a language and not a framework. I have met many people that learn frameworks like Ruby on Rails, but they know very little about Ruby. Frameworks give you too many magical things that become near impossible to debug and understand if you do not first understand the basics of the language.

0
0
Updated
Share a link to this answer
Share a link to this answer

Greg’s Answer

Scripting languages like Python are super-popular (particularly in the answers above :-) ), but for large projects Python/Perl/etc. can become unmaintainable. So feel free to start with one of them, but don't stop there!


I'd recommend C/C++/Java as your next step, for the simple reason that the vast majority of open-source projects out there use one of these languages, and contributing to an existing open-source project (fixing an annoying bug that no one else seems to be able to reproduce, or adding a feature that's the sole thing standing between the existing application and perfection) is a great way to hone your skills--AND to do so in a publicly visible way, which becomes important when it's time to start looking for a job.

0
0
Updated
Share a link to this answer
Share a link to this answer

Hanish’s Answer

There are different types of programming languages. There are strong typed and weak typed, object oriented and prototype based, etc. For someone who is starting out in programming, I would suggest a weak typed languages like python! What do I mean by types? Programming languages have data types which are variables that store data of various types like characters, integers, etc. python doesn’t have this that’s why it’s called a weak typed language which makes it easier to understand and code with.
0