What programming language is good for a beginner?

9    03 Sep 2016 01:49 by u/VVSomethingVV

Hey im intrested in programming But i have no experience with it. What should I get started on? Should I start with a ti 84 calculator?

65 comments

10

C and C++

7

Ah yes, the insanity wolf approach.

2

Seriously? C is what almost all important software in the world is written in. Not your fucking instagram web app crap, but stuff that runs power grids and comms satellites. What would you suggest, that they start by playing with play-doh?

0

Using c++ with OpenFrameworks is one of the most gentle learning curves I've ever seen in a toolkit. Its kinda weird.

9

Javascript. You can do a lot with little.

1

You're gonna get shit for this one but JS has grown into a serious language, and (because of its flexibility) can do anything that the more "respectable" (aka wanky) CS languages can do.

4

I'm a bit late to the party, but here's my $0.02.

Every time this question is asked, the general response is a list of everyone's current favorite programming language. This isn't really helpful to you as a new programmer since there aren't any strong reasons for you to start learning with any specific language. Also, most programming languages that you're going to be dealing with are (in a general sense) the same. Once you understand the basics behind writing software, it's fairly easy to pick up the syntax of other languages.

I recommend a few things:

  1. Start learning Java. If only because it is currently the most popular language (As of 2015). Because it's so popular, you won't have any trouble finding tutorials and examples, and getting help when you get stuck in the learning process.
  2. Learn about Software Design Patterns. I think this is actually more important than learning a language itself. Software design patterns are methods for solving existing problems. They aren't pre-coded solutions, but more of a way to think about common problems you come across when programming. Once you develop a logical problem solving mindset towards software solutions, the coding part comes down to syntax.
  3. Learn how to find software libraries that can do the job for you. There are plenty of people who have run across the same issues you have, and have spent a lot of time finding the solution. Sometimes they're nice enough to put out a library that you can use. I've seen some very smart people waste large amounts of time re-inventing the wheel simply because they didn't think to search for a freely available library.

Once you start to gain grasp of the programming mindset, and understand how and why software development/programming works, then I would say you should venture out and pick a language that's specific to your needs.

1

This is a great comment!

Please repost as it's own thread!

3

Still no answer for this cat? Take up Java. It really blows but you can make money doing it.

5

this advice is like telling someone in the early 20th century to learn how to make horseshoes

3

Why? Java's huge, it's established, and it's not going anywhere anytime soon. Decent dev around here can make anywhere from 150k-up, easily.

I hate it, but that's a shitty comparison.

0

It's still one of, if not the most used language. Academia and government doesn't keep up with the industry and some corps hate converting to anything different.

0

Academia and government doesn't keep up with the industry and some corps hate converting to anything different.

but they do when they have to, and java is well into being on its way out.

-1

i really shouldn't have spoken as if i know what i'm talking about; i just have done a little reading recently and concluded that java is dying, fast. security issues, obsolescence, etc.

1

People have hated Java since the day it was conceived and have been predicting its downfall.

It's now somewhere around 20 years old and is in darn near anything, including being the center of a multi-billion dollar lawsuit only a few months ago.

Java has problems, yes, but it also has tremendous acceptance. Whether or not it's the best solution is another story and open to interpretation, but don't follow the conga-line of people who generally like promoting their pet language or the latest fad language and scream that Java and C are the incarnation of evil in programming languages. The story is far more complicated and nuanced than that.

0

It really blows but you can make money doing it.

J2E you mean? Not all of the JVM ecosystem blows, IMO. Scala is decent. Clojure is decent. Hell, on a somewhat related note Clojurescript even seems kinda neat.

3

Java. The compiler is a lot more specific than most other languages, which makes it easier to find beginner's bugs. Also, Java's documentation is really thorough and easy (relatively) to read through. Once you get the hang of reading them, stepping yourself through tougher and more complex stuff gets much easier.

1

Yeah Java is what I say too. I know it's still the first programming language in alot of colleges too.

1

Learn to drive in a sedan, not an F-22

2

Easy mode: Python or Ruby It will be fun and you'll get into it fast.

Hard mode, but more rewarding: good ole' C. It'll be more challenging but if you know C, you'll understand data types and memory management and be able to pick up any language quickly, and be able to write efficient code.

2

You are right to stay away from python. It is a shit language. Its worst feature is significant whitespace. Its second worst feature is what version of "print" do you use. Is it a keyword, is it a function? Its third worst feature is what version of the language to you use. 2.6, 2.7, 3.something? I guess a newbie would just use the latest.

I don't know shit about a TI84. What did you make this post on? It might be even better than a calculator.

As for what you should use, I don't know. I started with C because that was the only physical book I had at the time and I wanted to work on a C project.

1

It depends on what you're comfortable with. Java has a lot of support and will generally tell you exactly where you fucked up. But it's very verbose.

But if you're just going in to start learning and you have no idea what to use. Try one of those online games that teaches you how to program. You won't be doing serious programming, but you'll learn the concepts of programming itself. Sort of like swimming in the shallow end before going to the deep end. You can spend a week or two, or more on one of those to get the general ideas of programming, then move on to an actual language and start writing basic programs.

1

Lisp or don't both.

1

Lisp is a great way to frustrate OP into dropping programming entirely.

0

It really depends on what type of programming you're wanting to get into. If you want to build web-based things, you can easily pick up the frontend stuff like HTML and CSS, and then start working with JavaScript (and JQuery). PHP is super easy once you're familiar with JavaScript, and most of the web uses PHP in some form or another (CMS's like WordPress and Joomla are built almost entirely on PHP).

If you're wanting to do stuff like app development, check out Java and / or Python. Ruby on Rails is alright but probably not great for a beginner, but you can build some awesome stuff with all 3 of those.

I would avoid stuff like C/C++ until you've cut your teeth.

0

PowerShell is nice and is part of your OS already if you have Windows. You can use .NET and build some pretty structured functions in the long run but start with super simple stuff. Its a really nice bridge from knowing nothing to c# if you're OK tying yourself to the MS stack.

0

I reccomend java, C#, c++ or php.

Anything to get the base logic down. From there, learn the particulars of the dofferent languages.

0

Software or web?

0

I would recommend lua. It's a minimalist scripting language so it's easy to grasp and also really fast (compared to other scripting languages like python). It's the first language I learned; I learned it because a game I played let you mod the client with lua scripts. It's not as useful as a language like Java, but a good amount of games have modding systems that use lua and you can embed it really easily in more advanced languages like C.

Edit: If you want some theory about programming languages you can check out some introductory computer science lectures from MIT, like Structure and Interpretation of Computer Programs

0

Any language can be an ideal place to start, you'll have an awful lot of basics to cover before you can really do anything advanced and the basics don't change much unless you are already familiar with the basics of another language and not all that capable of compartmentalizing what works where and doesn't work elsewhere.

Not all languages are equal but some are just easier to mess up and force you to go back snakes and ladders style to rewrite parts while dealing with what past you thought was a good idea or good enough solution at the time. Remember there is no perfect programming language, some work really well for certain kinds of projects while others lend themselves to other kinds of projects while none are exclusively this or that project only.

If you just want to understand how programming works you can find an introduction to C programming guide which should cover the importance of logical planning, incremental changes, testing as you go, data manipulations, how memory gets used and reused, and the limitations of a PC (it does what you tell it 99.99999% of the time and nothing else). Now if you want to make something that other people might like to use like a game, a phone app or something like that then you'd have an easier time learning how to do that with something like Java.

0

If you have a computer, I'd definitely start with that.

The language I started with was NetLogo, which is a baby language that let's you do some interesting things. I'd recomend it if you struggle with other sugestions.

0

I would say C# or Java since these two languages have compilers that are pretty good at pointing out beginner mistakes and offering solutions. They also prevent you from directly dealing with more complex things (ex. memory allocation, pointers).

I like Netbeans for Java and VS 2015 community for C#, they're free.

0

It is python and it uses raspberry PI but Pi Top has a game that teach you programming, you do not actually have to buy a pi top, you can download the OS and use it with your raspberry PI https://pi-top.com/

0

Learning how to program has less to do with the language and more to do with problem solving. Either you enjoy and are good at using the tools at hand -- ie. the programming language/development environment -- to solve problems or you should look at some other career. Accordingly enroll in a beginners programming course and see how it goes. Added bonus is that when you're done you will be better equipped to answer your original question, assuming you enjoy programming that is. Note: it has to be a real language though, not something like HTML or Visual Basic.

Good programmers are like good musicians: Learning a new language (instrument) is mostly just learning new syntax (fingering). Okay, maybe that metaphor is a bit of a stretch but I hope you get what I mean.

Keep in mind that becoming proficient in a language can take weeks or a few months, but becoming an expert takes years.

0

Additionally: which language is likely to remain in demand the longest (regardless of how easy it is to learn)?

0

That's a nice big dose of "it depends."

In my opinon? C/C++ and Java. Java because it's everywhere, and C/C++ because it's everywhere and it gets close to the actual machine. There is a reason most kernels are written in C/C++.

There's also COBOL, since a lot of the original programmers of systems written in COBOL are, well, dying.

0

IMO, unless TI's languages have changed dramatically, then TI-BASIC of almost any stripe is a fairly poor way to learn programming, but it is acceptable if you haven't got a real PC to work with. As such, I suggest you start there, but realize that you're going to need to move beyond TI-84 at some point. You will probably rather rapidly outgrow it. With the TI-84, AFAIK your only choices are TI-BASIC and assembly, and I'm pretty sure you need to use external tools for assembly (and assembly is not something you want to cut your teeth on unless you have no choice).

However, one thing to note is that you are NOT going to be able to reuse TI-BASIC skills on any other platform. TI-BASIC is peculiar to TI's offerings only, and it is appropriate for a calculator - that is to say, not all that sophisticated. You'd be doing this for a) personal curiosity, and b) developing overall concepts, e.g. what an IF-THEN-ELSE structure is for. There will be a learning curve when you transition to something more sophisticated.

Once you get your hands on something better, I would consider C, JavaScript, or Java (distinct from JavaScript). JavaScript is probably the most forgiving of the three and is part of any major web browser, Java runs anywhere, and C lets you see how the computer really works in all its glory (if you want to call it glory, some would call it horror).

If you want further recommendations, I suggest that you give us ideas of what you do have access to. Is the TI-84 literally the only computing device you have? Do you have an Android smart phone? Do you have a PC of almost any stripe (and if so can you give general specs)? Telling us what other resources - or that you have no other resources - would be helpful. Simply saying "I have a TI 84" does not indicate if that's all you've got, end of story.

0

I dont want to do Python yet

That was going to to be my answer. There really isn't a language that is easier to learn than Python. I really don't understand what you would want to do before Python. Maybe something like javascript could be easier, but I consider that to barely qualify as a full programing language. It certainly isn't as useful as Python.

-1

You should learn object oriented programming first.

So start with Java or C#.

Java runs on everything, IDEs are available for free and for every OS and you can learn the basics of OO Programming with it.

C# is the nicer language than Java, but you won't find as much help and resources for it as for Java.

Just avoid C++ and C, because C++ is a mess (very unclean but powerful language) and C can't teach you OO (but it's cool for low level stuff).

There are good free eBooks for many languages, so pick one that is for beginners.

Don't read too fast but instead use the stuff you learn a lot before you proceed to the next chapters, be sure you understand it.

Make little projects, really simple ones. At first without a GUI, just try to read a sudoku from a file and solve it in text mode, and similar stuff.

Later, you can try building GUIs and probably start with a simple calculator or text editor.

Little Games are also nice projects, but keep it simple at first.

-2

help me learn to program

but no python

too poor for raspberry pi

Learn binary & get punch cards you poor mother fucker