• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 23:59
CEST 05:59
KST 12:59
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
[ASL20] Ro24 Preview Pt2: Take-Off7[ASL20] Ro24 Preview Pt1: Runway132v2 & SC: Evo Complete: Weekend Double Feature4Team Liquid Map Contest #21 - Presented by Monster Energy9uThermal's 2v2 Tour: $15,000 Main Event18
Community News
Weekly Cups (Aug 18-24): herO dethrones MaxPax6Maestros of The Game—$20k event w/ live finals in Paris34Weekly Cups (Aug 11-17): MaxPax triples again!13Weekly Cups (Aug 4-10): MaxPax wins a triple6SC2's Safe House 2 - October 18 & 195
StarCraft 2
General
A Eulogy for the Six Pool BoxeR's Wings Episode 2 - Fan Translation Greatest Players of All Time: 2025 Update #1: Maru - Greatest Players of All Time Geoff 'iNcontroL' Robinson has passed away
Tourneys
$5,000 WardiTV Summer Championship 2025 Maestros of The Game—$20k event w/ live finals in Paris $5,100+ SEL Season 2 Championship (SC: Evo) Esports World Cup 2025 Sparkling Tuna Cup - Weekly Open Tournament
Strategy
Custom Maps
External Content
Mutation # 488 What Goes Around Mutation # 487 Think Fast Mutation # 486 Watch the Skies Mutation # 485 Death from Below
Brood War
General
Post ASL20 Ro24 discussion. BGH Auto Balance -> http://bghmmr.eu/ No Rain in ASL20? How do I speak directly to Coinbase?1-(888)-419-97 Recent recommended BW games
Tourneys
[ASL20] Ro24 Group F [IPSL] CSLAN Review and CSLPRO Reimagined! [ASL20] Ro24 Group D [ASL20] Ro24 Group E
Strategy
Muta micro map competition Simple Questions, Simple Answers Fighting Spirit mining rates [G] Mineral Boosting
Other Games
General Games
Stormgate/Frost Giant Megathread General RTS Discussion Thread Nintendo Switch Thread Dawn of War IV Path of Exile
Dota 2
Official 'what is Dota anymore' discussion
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Heroes of StarCraft mini-set
TL Mafia
TL Mafia Community Thread Vanilla Mini Mafia
Community
General
US Politics Mega-thread Things Aren’t Peaceful in Palestine Russo-Ukrainian War Thread The year 2050 European Politico-economics QA Mega-thread
Fan Clubs
INnoVation Fan Club SKT1 Classic Fan Club!
Media & Entertainment
Anime Discussion Thread Movie Discussion! [Manga] One Piece [\m/] Heavy Metal Thread
Sports
2024 - 2026 Football Thread Formula 1 Discussion TeamLiquid Health and Fitness Initiative For 2023
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread High temperatures on bridge(s) Gtx660 graphics card replacement
TL Community
The Automated Ban List TeamLiquid Team Shirt On Sale
Blogs
How Culture and Conflict Imp…
TrAiDoS
RTS Design in Hypercoven
a11
Evil Gacha Games and the…
ffswowsucks
INDEPENDIENTE LA CTM
XenOsky
[Girl blog} My fema…
artosisisthebest
Customize Sidebar...

Website Feedback

Closed Threads



Active: 2500 users

Learning C/C++ from beginning?

Blogs > stalife
Post a Reply
Normal
stalife
Profile Blog Joined June 2006
Canada1222 Posts
January 21 2010 09:19 GMT
#1
which books would you guys recommend for picking up C/C++ from the beginning? I started with Java, and I'm not really good at it, but I can write some codes.. I'd like to pick up C/C++ as well to start some basic projects of my own.

Any recommendations?? Thanks!

****
www.memoryexpress.com
keV.
Profile Blog Joined February 2009
United States3214 Posts
January 21 2010 09:28 GMT
#2
A billion good C and C++ books. IMO, start with C and practice with data structures; linked lists, binary trees, memory managers etc... After that knowing some Java and C you will pick up C++ very fast.
"brevity is the soul of wit" - William Shakesman
haduken
Profile Blog Joined April 2003
Australia8267 Posts
January 21 2010 09:28 GMT
#3
www.cplusplus.com

Better than any book.

To make it useful

Pick up a book that teaches you frameworks once you are done.

Qt, Visual C++, etc.. and learn libraries such as boost...

Understand the strength of C/C++ versus say Java. Understand the application of such strength where it fits. Understand the downfall and weakness of C/C++.
Rillanon.au
imDerek
Profile Blog Joined August 2007
United States1944 Posts
January 21 2010 09:41 GMT
#4
c++: the book by bjarne stroustrup the author himself.

go with c first though
Least favorite progamers: Leta, Zero, Mind, Shine, free, really <-- newly added
Marradron
Profile Blog Joined January 2009
Netherlands1586 Posts
January 21 2010 10:02 GMT
#5
For what purpose ?

You might as well learn c# or something like that. seems a bit more advanced than c++
Aim Here
Profile Blog Joined December 2009
Scotland672 Posts
Last Edited: 2010-01-21 10:08:35
January 21 2010 10:05 GMT
#6
On January 21 2010 18:41 imDerek wrote:
c++: the book by bjarne stroustrup the author himself.

go with c first though


I disagree. If you're planning on writing C++, then learn it straight off. C++ is superficially a superset of C, but the philosophy and the mindset of writing C++ code is very different from that needed for C code.

Plus, old C hands are likely to get into the bad habit of using C-isms, like malloc/free or pointer manipulation, rather than use the C++ variants.

Not that I'm opposed to learning C - C is a much nicer, cleaner language than C++ and is worth learning as the only low-level language you really need. C++ on the other hand, unless you have a specific need for it, I'd recommend saving all that memory space you'd use for C++ and using Java or Python or C# or something instead...
BlissX1
Profile Blog Joined October 2009
United States328 Posts
January 21 2010 10:16 GMT
#7
C++ and C and C# are easy TBA. i would suggest you learn java first, then Python. Then see if you still want to learn C++ and what not. if so, it will be easy. Java is already easy, Python is amazing. all the C stuff looks like total uselessness compared to Python cause Python is so efficient. That's why NASA uses it. C is nice though, but i suggest dont learn it for the first time. get some experience first. it will make it much easier.
XtremeOneZ 4 Life Bliss[x.1]
Amnesty
Profile Joined April 2003
United States2054 Posts
January 21 2010 10:56 GMT
#8
Accelerated C++

Pretty good book. Actually uses C++
The sky just is, and goes on and on; and we play all our BW games beneath it.
Aim Here
Profile Blog Joined December 2009
Scotland672 Posts
January 21 2010 11:08 GMT
#9
I forgot to recommend a book for the OP, and so I suppose somebody had better recommend K&R as the definitive book on straight C, and unrecommend anything by Herbert Schildt, whose books are both very popular and yet so egregiously wrong that they spawned a jargon file entry.
iaretehnoob
Profile Joined June 2004
Sweden741 Posts
January 21 2010 11:08 GMT
#10
On January 21 2010 19:16 Bl1ss wrote:
Fortran is amazing. all the C stuff looks like total uselessness compared to Fortran cause Fortran is so efficient. That's why NASA uses it.
mptj
Profile Blog Joined June 2009
United States485 Posts
January 21 2010 11:31 GMT
#11
I recommend C for the absolute beginner i'm reading it and it comes with the software and its very interactive. It's kind of old, but it works with vista, while you're running a linux shell.
"Only the Good Die Young"
FirstBorn
Profile Blog Joined March 2007
Romania3955 Posts
January 21 2010 11:33 GMT
#12
On January 21 2010 18:28 haduken wrote:
www.cplusplus.com

Better than any book.


I'm going to second this, VERY usefull site. Helped me a ton with getting the hang of C/C++.
SonuvBob: Yes, the majority of TL is college-aged, and thus clearly stupid.
agorist
Profile Joined July 2009
United States115 Posts
Last Edited: 2010-01-21 11:46:01
January 21 2010 11:42 GMT
#13
C first.
C++ second.



What is your current skillset? Know the difference between the heap and stack? Can you wield pointers?
CTStalker
Profile Blog Joined November 2004
Canada9720 Posts
January 21 2010 11:47 GMT
#14
as has been said, learn C first (and then never learn C++: learn Lisp instead)

this is the book you'll use to learn C
By the way, my name is Funk. I am not of your world
araav
Profile Blog Joined September 2004
Armenia1590 Posts
January 21 2010 11:59 GMT
#15
don't go for C first, don't go for C at all if you are not planning to be a system programmer.

C++ is a moderate OO language and I would recommend doing it this way -
first pick an easy book, not a fancy one, like any book for dummies, get the grasp of pointers, templates, classes, encapsulation, polymorphism, etc

then go for more master series, like take Effective/More Effective C++ books.
then go for expert series, like Alexandresku
then take up the C++ standard and make it your bible

this is your true path of a C++ guru
The flower that blooms in adversity is the most rare and beautiful of all.
Neshapotamus
Profile Blog Joined May 2006
United States163 Posts
January 21 2010 13:18 GMT
#16
http://www.learncpp.com/
Amnesty
Profile Joined April 2003
United States2054 Posts
January 21 2010 13:19 GMT
#17
Disagree with the C first approach. Strongly strongly disagree.
The problem is you don't end up learning C++ next. You learn a bastard child mish mash of both next. Its like you are learning C but with some cool classes thrown in. And its just bad.
It's not that the C language is horrible, its not. The problem is coding C++ in a C POV that is horrific.

The main problem with that is you won't even realize you are writing bad C++ code so you wont even try and fix it. It takes a lot more effort to unlearn C to learn C++
God have mercy if you read a whole chapter on macros in C and then crack open a different C++ book. And a lot of C++ books are really C books in disguise beware.

Start with the book I recomended. I really wished that book came out a lot earlier.

You didnt say why you wanted to learn C++. There might be a better option for you. Right now, im using C#/WPF for my project. It would be a nightmare to do using other options.
The sky just is, and goes on and on; and we play all our BW games beneath it.
Marradron
Profile Blog Joined January 2009
Netherlands1586 Posts
January 21 2010 14:04 GMT
#18
for online c instructions http://www.iu.hio.no/~mark/CTutorial/CTutorial.html#
Flaccid
Profile Blog Joined August 2006
8841 Posts
January 21 2010 14:12 GMT
#19
I don't understand the 'learn C first' idea. Sounds like a waste of time.

What type of projects are you looking to do? I ask because you might want to consider spending that time learning C# (as others have said) instead. The thing about C++ is that it can be tough to jump into because it can be so convoluted. It's just been built upon and built upon until there are 100 different ways to do any one thing and you end up agonizing over which is the 'best' way.

C#, on the other hand is much more intuitive (C++ is only intuitive to those that have coded C++ for the majority of their lives) and you will climb the learning curve much more quickly. Microsoft is pushing it hard too so each update to the framework brings more and more useful goodies. I coded C++ and C for years and have switched almost entirely to C#. Another nice thing about C# is that you can jump right into coding web-applications and ASP for web junk, if that's an ambition of yours.

Anywho, if you do decide to go that route, these guys have a nice series of books for each step of the learning curve: link
I'd rather have a bottle in front of me than a frontal lobotomy
ProoM
Profile Blog Joined May 2009
Lithuania1741 Posts
January 21 2010 14:19 GMT
#20
On January 21 2010 18:28 haduken wrote:
www.cplusplus.com

Better than any book.

To make it useful

Pick up a book that teaches you frameworks once you are done.

Qt, Visual C++, etc.. and learn libraries such as boost...

Understand the strength of C/C++ versus say Java. Understand the application of such strength where it fits. Understand the downfall and weakness of C/C++.

Knock knock. Whos there? -After very long pause- Java.
IMBA - International Mountain Bicycling Association.
Cloud
Profile Blog Joined November 2004
Sexico5880 Posts
Last Edited: 2010-01-21 14:36:10
January 21 2010 14:19 GMT
#21
c/c++ how to program by deitel&deitel.

Imo. Don't waste your time in C

Just like, if you were starting with engineering and wanted some background. Don't start with html, learn c++ or java or algorithms at least. Leave html for the tools.
BlueLaguna on West, msg for game.
EsX_Raptor
Profile Blog Joined February 2008
United States2801 Posts
January 21 2010 14:25 GMT
#22
"A Book on C : Programming in C", 4/e, A. Kelley & I. Pohl, 1998

There's no better book than that one to learn C.
SilverSkyLark
Profile Blog Joined April 2008
Philippines8437 Posts
January 21 2010 14:26 GMT
#23
Go start with C++ - that's depending on your skill of course.

You can do a whole lot more stuff with C++ as compared to C.

"If i lost an arm, I would play w3." -IntoTheWow || "Member of Hyuk Hyuk Hyuk cafe. He's the next Jaedong, baby!"
CTStalker
Profile Blog Joined November 2004
Canada9720 Posts
January 21 2010 14:56 GMT
#24
how is learning C first a waste of time? lol. if you learn C you'll have no problem picking up java, python, javascript, actionscript, ruby, etc etc. and if you learn lisp, you'll actually be able to take advantage of the functional features of those languages, like closures and other first-class jazz.

learning C++ is a waste, because it's such a terribly designed language. the feature set is massive, and having to manually allocate memory in a language that deals with high-level concepts like polymorphism is really stupid.

that's my incredible bias, anyway. i know google uses c++ a lot, and if you want to work with directx or opengl, you'll need it. but if you want to program for the web: it's a waste of time.

and proom, jokes like that stopped being funny like 8 years ago. gc and the jvm have come a long way
By the way, my name is Funk. I am not of your world
spitball
Profile Blog Joined August 2008
Australia81 Posts
January 21 2010 15:08 GMT
#25
On January 21 2010 23:56 CTStalker wrote:
how is learning C first a waste of time? lol. if you learn C you'll have no problem picking up java, python, javascript, actionscript, ruby, etc etc. and if you learn lisp, you'll actually be able to take advantage of the functional features of those languages, like closures and other first-class jazz.


I think what they mean is if you plan on learning C++ then you shouldn't think of C as some kind of stepping stone.

Anyway, if you don't end up going with C++ then I would recommend either Python or Ruby. I think both are good languages to start with.
Cambium
Profile Blog Joined June 2004
United States16368 Posts
January 21 2010 15:53 GMT
#26
Thinking in C++
Effective C++

Hands down.
When you want something, all the universe conspires in helping you to achieve it.
Adeny
Profile Blog Joined January 2009
Norway1233 Posts
January 21 2010 16:11 GMT
#27
On January 21 2010 23:56 CTStalker wrote:
how is learning C first a waste of time? lol. if you learn C you'll have no problem picking up java, python, javascript, actionscript, ruby, etc etc. and if you learn lisp, you'll actually be able to take advantage of the functional features of those languages, like closures and other first-class jazz.

learning C++ is a waste, because it's such a terribly designed language. the feature set is massive, and having to manually allocate memory in a language that deals with high-level concepts like polymorphism is really stupid.

that's my incredible bias, anyway. i know google uses c++ a lot, and if you want to work with directx or opengl, you'll need it. but if you want to program for the web: it's a waste of time.

and proom, jokes like that stopped being funny like 8 years ago. gc and the jvm have come a long way


C will teach you java better than C++? What are you drinking son, first of all the syntaxes are relatively similar and won't give you any problems. Second of all, OOP. Nowadays I see no reason to learn C unless you're dead set on building OSes, in which case, learn C++ first anyways then downgrade to C. Until you get to learning OOP in C++, you're pretty much learning the exact same thing as you would be learning in C anyways. Just learn the basics of C++ and then take it from there.
2Pacalypse-
Profile Joined October 2006
Croatia9509 Posts
January 21 2010 16:26 GMT
#28
These C bashers reminds me so much of this article.

Moderator"We're a community of geniuses because we've found how to extract 95% of the feeling of doing something amazing without actually doing anything." - Chill
CTStalker
Profile Blog Joined November 2004
Canada9720 Posts
Last Edited: 2010-01-21 16:38:12
January 21 2010 16:32 GMT
#29
the guy already knows java. learning C will solidify his knowledge of C-like languages. he already (presumably) has a grasp on OOP -- he certainly doesn't need the cluster-fuck that is C++ to teach him that. C is simple, C is straight-forward. and it will help you wherever you program imperatively

edit: actually i re-read the OP, and it sounds like he's just interested in learning programming as a hobby? if that's the case, object-oriented programming won't mean a dang to him anyway
By the way, my name is Funk. I am not of your world
spinesheath
Profile Blog Joined June 2009
Germany8679 Posts
January 21 2010 17:08 GMT
#30
I am currently reading the C++ Programming language by Stroustrup. I have been using C++ for years now, with my most important source being the internet (cplusplus is a good reference site indeed, but I doubt it'll help you with learning how to write good code).

The book by Stroustrup probably is a bit hard if you are just starting, but depending on how much Java you actually know it could be enough.

I strongly advise against learning C before C++. At least don't spend more than a month on it. You WILL pick up bad habits and it'll be hard to get rid of the C mentality and into object orientation. You will write bad C++ code if you start with C. I'm talking out of my own experience and know several people who had/have that problem. Because the languages are so similar syntactically you will have a hard time switching your progamming mentality.
C++ is not harder to learn than C. Any decent C++ book/tutorial will still teach you how to do imperative programming (like C) but it won't go into detail as much as a C book would. There is not too much to gain from purely imperative programming anyways (large imperative projects are almost unmanageable).

After some time I found the c++-faq-lite which imo is a really great source if you got a decent understanding of the syntax and want to get a proper C++ mentality. All the reference sites are nice and all, but after reading this faq my C++ immediately became MUCH more clean and efficient. Read it.

C++ isn't very useful if you don't have to worry about performance. Pick any of the garbage collected and well portable languages if you don't need performance.
If you have a good reason to disagree with the above, please tell me. Thank you.
celeste
Profile Joined January 2010
England45 Posts
January 21 2010 17:18 GMT
#31
I completely back cpluscplus.com and the Accelerated C++ book

learncpp.com is also a really nice site for learning, the author answers virtually every question made in the comments

I really hope this thread doesn't degenerate into an argument over which language to learn
dinmsab
Profile Blog Joined January 2008
Malaysia2246 Posts
January 21 2010 17:19 GMT
#32
On January 21 2010 23:19 Cloud wrote:
c/c++ how to program by deitel&deitel.

Imo. Don't waste your time in C

Just like, if you were starting with engineering and wanted some background. Don't start with html, learn c++ or java or algorithms at least. Leave html for the tools.


I've learned c++, java and c with Deitel books. Would totally recommend those.
..
raylu
Profile Joined August 2006
United States6 Posts
January 21 2010 18:08 GMT
#33
On January 21 2010 19:02 Marradron wrote:
For what purpose ?

You might as well learn c# or something like that. seems a bit more advanced than c++

What are you talking about? C# is certainly newer, but not more advanced.

I second the recommendation for K&R for C. That said, if you're only interested in programming as a hobby and are only interested in developing on Windows, C# is probably a better choice than either C or C++.
o.0?
JiYan
Profile Blog Joined February 2009
United States3668 Posts
January 21 2010 18:15 GMT
#34
xD i thought this was about starcraft
QuickSandSlowly
Profile Blog Joined January 2008
China95 Posts
January 21 2010 18:25 GMT
#35
Google Karel, also C++ for everyone.
jijibulei ggplay
gumbum8
Profile Blog Joined December 2008
United States721 Posts
January 21 2010 19:12 GMT
#36
I have a question while we're on the subject...
Say I'm a programming n00b. The best I've ever done is making a guessing game with numbers 1-20 in python.
My goal is to make fun or useful programs with programming, not necessarily full fledged games, but just useful programs that could serve some general purpose on my computer.
Anyone have a language recommendation?
but really, has anyone REALLY been far even as decided to use even go want to do look more like?
Slithe
Profile Blog Joined February 2007
United States985 Posts
January 21 2010 19:20 GMT
#37
I think learning C is much better for gaining good fundamentals and understanding basic principles of programming.

C++ is far too bulky and cluttered for a beginner in my opinion. I don't think you'll gain much by learning C++ unless you have a specific purpose or reason for using it.

If learning through books isn't your cup of tea, the lectures for the introductory CS courses at UC Berkeley are available via youtube. The first few lectures of CS61C go over basic C concepts.

Also, as a Berkeley grad I'm obligated to recommend learning Lisp/Scheme first, in which case you should go through the CS61a series of lectures.

Aim Here
Profile Blog Joined December 2009
Scotland672 Posts
January 21 2010 19:23 GMT
#38
Python is actually a good choice for a general programming language. It's a very nice language
with clean syntax, and because it's popular among developers, there are now plenty of libraries that allow you to do almost anything you like in python, including some fairly popular programs - most bittorrent clients I've ever used have been written in it, for example, and civ4 used it as the main scripting language.

It doesn't hurt to learn a few other languages, anyways, to see how the rest of the world lives, but you've started off well!

uberMatt
Profile Joined May 2004
Canada659 Posts
January 21 2010 19:23 GMT
#39
k&r for c
spinesheath
Profile Blog Joined June 2009
Germany8679 Posts
January 21 2010 19:39 GMT
#40
On January 22 2010 04:20 Slithe wrote:
I think learning C is much better for gaining good fundamentals and understanding basic principles of programming.

C++ is far too bulky and cluttered for a beginner in my opinion. I don't think you'll gain much by learning C++ unless you have a specific purpose or reason for using it.


I would suggest a hgher-level language than C if all you want is a good understanding of basic principles. Java, Python and the likes probably would be good choices. With C, you'll most likely just end up doing tons of low level stuff, which doesn't teach you a lot of important concepts. Getting good at pointer arithmetics and typecasting is all nice, but it's no basic principle of progamming.

If you start C++ properly and make extensive use of the Standard Library, it isn't bulky/cluttered imo. If you mix imperative and OO programming it indeed is messy.
If you have a good reason to disagree with the above, please tell me. Thank you.
gumbum8
Profile Blog Joined December 2008
United States721 Posts
January 21 2010 19:44 GMT
#41
Well, I don't know if these last few responses were directed towards me or the OP, but to clarify a little bit, I just want to start learning a simple language. I Would then consider branching outwards, learning how to adjust syntax and perform different actions in languages. So basically what I'm saying is, I'm looking for the best language to begin my quest, that would be simple and user-friendly enough for me to understand with a "for dummies" book.
but really, has anyone REALLY been far even as decided to use even go want to do look more like?
Mastermind
Profile Blog Joined April 2008
Canada7096 Posts
January 21 2010 20:10 GMT
#42
On January 22 2010 04:44 gumbum8 wrote:
Well, I don't know if these last few responses were directed towards me or the OP, but to clarify a little bit, I just want to start learning a simple language. I Would then consider branching outwards, learning how to adjust syntax and perform different actions in languages. So basically what I'm saying is, I'm looking for the best language to begin my quest, that would be simple and user-friendly enough for me to understand with a "for dummies" book.

if you want something simple and user friendly then dont learn C or C++. I would recommend Python. Python is really easy for beginners.
DeathSpank
Profile Blog Joined February 2009
United States1029 Posts
January 21 2010 20:29 GMT
#43
start with c++ and if you feel the need to go to a lower level language go to c. As for books you don't really need one if you understand the fundamentals of programming, like that other guy said www.cplusplus.com or whatever it was; that site is an amazing tool.
yes.
Slithe
Profile Blog Joined February 2007
United States985 Posts
Last Edited: 2010-01-21 20:50:08
January 21 2010 20:38 GMT
#44
Yea as Mastermind said, python's a very good starting choice for a simple, easy to understand language.

On January 22 2010 04:39 spinesheath wrote:
Show nested quote +
On January 22 2010 04:20 Slithe wrote:
I think learning C is much better for gaining good fundamentals and understanding basic principles of programming.

C++ is far too bulky and cluttered for a beginner in my opinion. I don't think you'll gain much by learning C++ unless you have a specific purpose or reason for using it.


I would suggest a hgher-level language than C if all you want is a good understanding of basic principles. Java, Python and the likes probably would be good choices. With C, you'll most likely just end up doing tons of low level stuff, which doesn't teach you a lot of important concepts. Getting good at pointer arithmetics and typecasting is all nice, but it's no basic principle of progamming.

If you start C++ properly and make extensive use of the Standard Library, it isn't bulky/cluttered imo. If you mix imperative and OO programming it indeed is messy.


Yea I do agree actually that C shouldn't be the first language. To clarify, I was talking about other concepts that are more relevant from a low level perspective, like memory management and data representation. The big picture just makes more sense when you understand what's going on under the hood, and it'll make you a better programmer to be mindful of such things.

Edit: Also, my personal opinion is that c++ is a heinous language for beginners to use, because there's just so much potential for writing terribly flawed code. Also, I hate reading c++ code.
Phrujbaz
Profile Blog Joined September 2008
Netherlands512 Posts
January 21 2010 20:49 GMT
#45
CTStalker is right. C++ has been amazingly useful since it's conception but, as time goes on, it's becoming more and more outdated.

If you start learning how to program now, I wouldn't learn C++. I would learn D.

http://www.digitalmars.com/d/

D is C++ modernized. It's both easier to learn and more powerful, while remaining extremely similar to C++.

Here's a beginner guide http://compsci.ca/v3/viewtopic.php?t=9518
Caution! Future approaching rapidly at a rate of about 60 seconds per minute.
nemomike
Profile Joined March 2005
61 Posts
January 21 2010 20:57 GMT
#46
Well I personally would recommend starting with C, not the other way around.
Best book for beginners imo: http://www.amazon.com/Primer-Plus-5th-Stephen-Prata/dp/0672326965/ref=sr_1_8?ie=UTF8&s=books&qid=1264107017&sr=1-8
And besides K&R: http://www.amazon.com/Reference-Manual-Samuel-P-Harbison/dp/013089592X/ref=sr_1_13?ie=UTF8&s=books&qid=1264107047&sr=1-13
Also, if you want to test yourself and learn something about algorithms and such, try http://www.spoj.pl/ (you can solve problems with many languages).
prOxi.swAMi
Profile Blog Joined November 2004
Australia3091 Posts
January 21 2010 22:48 GMT
#47
I would recommend you try C#.... it is just such a delight to use...
Oh no
coltrane
Profile Blog Joined June 2008
Chile988 Posts
January 21 2010 23:00 GMT
#48
Dont waste your time with c or c#

One is too old, and the other is platform dependant.


learn C++, just because after that almost anything should be easy.
Jävla skit
ygor
Profile Blog Joined April 2004
Slovakia246 Posts
January 21 2010 23:12 GMT
#49
I am in the software development for 5,5years now. My advice is to learn C# or Java.
fabiano
Profile Blog Joined August 2009
Brazil4644 Posts
January 21 2010 23:35 GMT
#50
i do recommend C++, C# and Java. I once wrote a tetris clone in C# that was runnable on PC and XBOX, too bad i didnt have a xbox to test it with the controllers. I used xna game studio 2.0 if i recall correctly, but lost it when my notebook went down.

after learning the language, i strongly recommend you to search for Design Patterns. They are wonderful and will help you to think how to code your systems correctly. Im reading 'head first design patterns' rightnow and it is awesome, very light weight read and fun.

+ Show Spoiler +
LEARN DESIGN PATTERNS!!!! this is fucking awesome.
"When the geyser died, a probe came out" - SirJolt
kli6891
Profile Blog Joined October 2008
United States143 Posts
January 22 2010 00:08 GMT
#51
Would recommend going straight for C++, since it's a superset of C anyway.
Pawsom
Profile Blog Joined February 2009
United States928 Posts
January 22 2010 00:39 GMT
#52
On January 21 2010 23:26 SilverSkyLark wrote:
You can do a whole lot more stuff with C++ as compared to C.


I've never come across a task that could be done in C++ but not C.
swat
Profile Blog Joined January 2008
Australia142 Posts
January 22 2010 00:51 GMT
#53
On January 22 2010 08:12 ygor wrote:
I am in the software development for 5,5years now. My advice is to learn C# or Java.


Listen to this man.
I just graduated and most jobs I am going for want me to have experience mostly in Java, then either c# or .NET then c++.

If you are looking at a job in programming then I seriously suggest you also get a feel for a relational database system (oracle, DB2, sybase etc) and SQL.
coltrane
Profile Blog Joined June 2008
Chile988 Posts
January 22 2010 02:00 GMT
#54
On January 22 2010 09:39 Pawsom wrote:
Show nested quote +
On January 21 2010 23:26 SilverSkyLark wrote:
You can do a whole lot more stuff with C++ as compared to C.


I've never come across a task that could be done in C++ but not C.



there is always a c way to do it. Usually it is way more tricky, long and hard.


Seriously, dont lear c#, learn c++. C# is platform dependant and that is a huge fail.
Jävla skit
iaretehnoob
Profile Joined June 2004
Sweden741 Posts
January 22 2010 11:03 GMT
#55
Multiplatform (most likely) does not matter to somebody just learning to program.
Writing and maintaining a multiplatform program in C++ is not easy.
C# works on Windows, Linux, Mac OS, the Xbox 360 and even some phones and stuff (even if java is probably the better choice there), so yes it's "platform dependant" as it needs a CLR, but it's still not Microsoft-only as most people think when they say "platform dependant".

Once you've used C# you don't want to go back to C++. Sadly there are still situations where using C++ is necessary, but it takes sooo much more work to get anything done.

Java is not a bad choice, even if it has a few things that annoy me and make me prefer C#.
Python really is another great choice, I think you could be even more productive with Python.
Both C# and Python also allow a slow introduction of functional concepts later, which is great since Lisp and friends have a rather steep early learning curve imo, especially if you're learning on your own.
CTStalker
Profile Blog Joined November 2004
Canada9720 Posts
January 22 2010 12:38 GMT
#56
iaretehnoob is right. but once you do learn Lisp, you'll never go back
By the way, my name is Funk. I am not of your world
raylu
Profile Joined August 2006
United States6 Posts
January 24 2010 23:30 GMT
#57
On January 22 2010 20:03 iaretehnoob wrote:
Multiplatform (most likely) does not matter to somebody just learning to program.
Writing and maintaining a multiplatform program in C++ is not easy.
C# works on Windows, Linux, Mac OS, the Xbox 360 and even some phones and stuff (even if java is probably the better choice there), so yes it's "platform dependant" as it needs a CLR, but it's still not Microsoft-only as most people think when they say "platform dependant".


Mono only supports 2.0 and some of 3.0. The .NET framework is at 3.5.
o.0?
Normal
Please log in or register to reply.
Live Events Refresh
Replay Cast
00:00
SEL S2 Championship: Ro16
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
Nina 151
RuFF_SC2 134
ProTech98
StarCraft: Brood War
sSak 161
NaDa 75
Aegong 47
Icarus 13
Dota 2
monkeys_forever619
League of Legends
JimRising 696
Counter-Strike
Stewie2K437
Other Games
summit1g9442
shahzam1072
C9.Mang0459
WinterStarcraft406
ViBE126
Hui .102
singsing62
NeuroSwarm59
Mew2King48
Organizations
Counter-Strike
PGL1437
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 13 non-featured ]
StarCraft 2
• practicex 24
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• iopq 1
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Lourlo822
Upcoming Events
LiuLi Cup
7h 1m
MaxPax vs TriGGeR
ByuN vs herO
Cure vs Rogue
Classic vs HeRoMaRinE
Cosmonarchy
12h 1m
OyAji vs Sziky
Sziky vs WolFix
WolFix vs OyAji
Big Brain Bouts
12h 1m
Iba vs GgMaChine
TriGGeR vs Bunny
Reynor vs Classic
Serral vs Clem
BSL Team Wars
15h 1m
Team Hawk vs Team Dewalt
BSL Team Wars
15h 1m
Team Hawk vs Team Bonyth
Code For Giants Cup
18h 31m
SC Evo League
1d 8h
TaeJa vs Cure
Rogue vs threepoint
ByuN vs Creator
MaNa vs Classic
Maestros of the Game
1d 12h
ShoWTimE vs Cham
GuMiho vs Ryung
Zoun vs Spirit
Rogue vs MaNa
[BSL 2025] Weekly
1d 14h
SC Evo League
2 days
[ Show More ]
Maestros of the Game
2 days
SHIN vs Creator
Astrea vs Lambo
Bunny vs SKillous
HeRoMaRinE vs TriGGeR
BSL Team Wars
2 days
Team Bonyth vs Team Sziky
BSL Team Wars
2 days
Team Dewalt vs Team Sziky
Monday Night Weeklies
3 days
Replay Cast
3 days
Sparkling Tuna Cup
4 days
LiuLi Cup
5 days
Replay Cast
5 days
The PondCast
6 days
RSL Revival
6 days
Maru vs SHIN
MaNa vs MaxPax
Liquipedia Results

Completed

CSL Season 18: Qualifier 1
WardiTV Summer 2025
HCC Europe

Ongoing

Copa Latinoamericana 4
BSL 20 Team Wars
KCM Race Survival 2025 Season 3
BSL 21 Qualifiers
ASL Season 20
Acropolis #4 - TS1
CSL Season 18: Qualifier 2
SEL Season 2 Championship
BLAST Open Fall Qual
Esports World Cup 2025
BLAST Bounty Fall 2025
BLAST Bounty Fall Qual
IEM Cologne 2025
FISSURE Playground #1
BLAST.tv Austin Major 2025

Upcoming

CSL 2025 AUTUMN (S18)
LASL Season 20
BSL Season 21
BSL 21 Team A
Chzzk MurlocKing SC1 vs SC2 Cup #2
RSL Revival: Season 2
Maestros of the Game
EC S1
Sisters' Call Cup
Skyesports Masters 2025
IEM Chengdu 2025
PGL Masters Bucharest 2025
Thunderpick World Champ.
MESA Nomadic Masters Fall
CS Asia Championships 2025
ESL Pro League S22
StarSeries Fall 2025
FISSURE Playground #2
BLAST Open Fall 2025
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Disclosure: This page contains affiliate marketing links that support TLnet.

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2025 TLnet. All Rights Reserved.