Poll: ?
You do not have permission to vote in this poll.
C 17 56.67%
Python 7 23.33%
Go 6 20.00%
Total 30 vote(s) 100%
* You voted for this item. [Show Results]

Learning Go over C and Python - Programming On Unix

Users browsing this thread: 1 Guest(s)
biwokeg
Registered
Hello, guys! Do you think it's worth choosing Go as first and only programming language when options like C and Python exist?

I really like the idea of learning C since like 95% of programs I use are written in it, it gives good foundations, simple and Unix-Way-ish.
My main concern about C is that most books only teach the language itself, but not real world application of it.

I really like the idea of learning Python since the rest of programs I use are written in it, has good modern literature and courses, simple (in another way).
My main concern with Python is that it seem overly "bloated" and hand holding. Some books I looked through explain fundamental things in completely opposite way the others do.

Is Go the middle ground of two? I see both camps really liking it as of ~2014, but recent comments are mostly negative like the developers gone wrong direction. Is it a promising language that is simple in both ways and Unix-Way-ish?
pranomostro
Long time nixers
Hey biwokeg,

welcome to the forums! I started with C, and have more or less sticked with it until now.
I will quote [how to become a hacker](http://www.catb.org/esr/faqs/hacker-howto.html ):

Quote:If you don't know any computer languages, I recommend starting with Python. It is cleanly designed, well documented, and relatively kind to beginners. Despite being a good first language, it is not just a toy; it is very powerful and flexible and well suited for large projects.

I don't I should argue with esr, and I also think that if you are honest about wanting to learn programming, C and maybe also Go will follow. I would not worry too much about the first programming language, since languages are relatively easy to learn after one has understood the basic concepts of programming. I don't think they should be obscured by memory management by hand.

One more source on this is [teach yourself programming in 10 years](http://www.norvig.com/21-days.html ):

Quote:Several people have asked what programming language they should learn first. There is no one answer, but consider these points:

Use your friends. When asked "what operating system should I use, Windows, Unix, or Mac?", my answer is usually: "use whatever your friends use." The advantage you get from learning from your friends will offset any intrinsic difference between OS, or between programming languages. Also consider your future friends: the community of programmers that you will be a part of if you continue. Does your chosen language have a large growing community or a small dying one? Are there books, web sites, and online forums to get answers from? Do you like the people in those forums?
Keep it simple. Programming languages such as C++ and Java are designed for professional development by large teams of experienced programmers who are concerned about the run-time efficiency of their code. As a result, these languages have complicated parts designed for these circumstances. You're concerned with learning to program. You don't need that complication. You want a language that was designed to be easy to learn and remember by a single new programmer.
Play. Which way would you rather learn to play the piano: the normal, interactive way, in which you hear each note as soon as you hit a key, or "batch" mode, in which you only hear the notes after you finish a whole song? Clearly, interactive mode makes learning easier for the piano, and also for programming. Insist on a language with an interactive mode and use it.

Given these criteria, my recommendations for a first programming language would be Python or Scheme. Another choice is Javascript, not because it is perfectly well-designed for beginners, but because there are so many online tutorials for it, such as Khan Academy's tutorial. But your circumstances may vary, and there are other good choices. If your age is a single-digit, you might prefer Alice or Squeak or Blockly (older learners might also enjoy these). The important thing is that you choose and get started.

I hope I could help you with this answer.
venam
Administrators
Maybe learn pure logic and simple flowcharts first and then randomly pick one of the 3 to apply the theory into practice.

There are multiple mobile games available to help you learn the basic, which is very generic and encompasses any programming language.
strang3quark
Members
I write most of my projects in Python but I don't think that's a good option for beginners, sure it's easy but you wouldn't understand the basics of programming with it, this also applies to PHP and Javascript.

With C you will learn the "traditional" programming, you have to declare variables, allocate memory, learn the datatypes, structures, etc...

In my case I started with Pascal some years ago, it's also a good starting point but I think C is the better language for beginners.
biwokeg
Registered
pranomostro, links don't work for me, but I've got the idea. Thanks!
Edit: nevermind, didn't saw links have parens in them.

venam, I've studied Boolean algebra, numeral systems stuff, and other basic things for CS state exam after school, however that was very brief (without how this data is represented by computer for example) and I barely remember anything. Odd fact is that it was 2012 and the only accepted PL for exercises was Pascal.

strang3quark, I see, thank you.

Think I'll learn Python with Lubanovic's Introducing Python just to be able to automate everyday stuff ASAP, and focus on C with foundations right after. Can you recommend some learning material to check after K&R and/or C Primer Plus? Or is it better to straight up start checking open source projects in your opinion?
pranomostro
Long time nixers
I am fairly traditional in that regard, read K&R, and if you're not tired of C after that, maybe also consider 21st century C (although I have only read parts of that). But I would go and search some nice open source project after learning C, reading code is fairly important.
jkl
Long time nixers
The creators of Go - some of which were a part of the same team that "invented" (i.e. shamelessly copied) C - have (almost literally) stated in the past that Go basically exists because the guys of Google are too dumb for C/C++. Decide for yourself if you consider yourself to be too dumb for C.

Concerning Python: Python is great as a teaching language but it shows its bad design choices in real life development. Better safe than sorry. Don't.
biwokeg
Registered
Alright, C it is. Thanks again, guys!
josuah
Long time nixers

I think I read something like this from Rob Pike. Not literally "too dumb" of course: compilation becoming too complex (<code>#include "xxx.h"</code> bess, ...), other issues...

Here another article: http://commandcenter.blogspot.fr/2012/06...-more.html
jkl
Long time nixers
Original Rob Pike quote (source):

Quote:The key point here is our programmers are Googlers, (...) [t]hey’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt.

Not "too dumb", just "not capable of understanding good languages".

Which is, well, quite the same, isn't it?
josuah
Long time nixers
Making a language simpler feels OK to me, but only if it does not get any more complex for being dumb-proof.

(14-12-2016, 09:22 AM)jkl Wrote: Which is, well, quite the same, isn't it?

Agreed.
mrmister
Members
How the heck can these folks who have degrees/certifications in this mess and know crap tons more programming stuff than me, can't understand a simple language. Meanwhile lazy me got an F on a CS class and I got the gist of the language after reading K&R ONCE!

These guys are dumb.
jkl
Long time nixers
That's why Google wants them.
mrmister
Members
(17-12-2016, 01:16 PM)jkl Wrote: That's why Google wants them.
I don't know anything about how businesses work really, so how is it a good idea to get dumb programmers working for your company?