View Full Version : I'm 14 and starting programming --> n00b. HELP!
chili
Nov 26, 2009, 02:36 PM
Hey guys i'm 14 years old and i'm a pretty big mac/iphone h4x0r.
I have decided to start to learn programming but i'm a total n00b.
I've made some cool applescript applications but now i wanna start for real.
Should I learn C++ or Java? I know Java os more object-based and easier to work with but c++ is just a language everybody should know.
Also, do you guys know a good book that can get me started? Oh, and also what app should i use? I know theres eclipse and also netbeans.
PLEASE HELP I NEED TO KNOW WHERE TO START!!!!!
P.S. I don't have anyone who can help me except for my dad who knows pascal and is a pretty big g33k himself... :apple:4life
jared_kipe
Nov 26, 2009, 02:47 PM
You should start with C, then make the choice for moving to Objective-C or C++.
If you plan on developing on the Mac platform, then Objective-C is the most obvious choice.
Java and C++ are both based on C, it is harder to learn either without some fundamental C knowledge.
Pickup the book "Learn C on the Mac" , best book there is in my opinion.
chili
Nov 26, 2009, 02:55 PM
Thanks man, i'll order the book as soon as i can..
And what app should I use to do programming? I've used xcode to make an objective-c/cocoa application but only via Interface Builder (fail).
I've also made a couple of widgets in dashcode...
mongrol
Nov 26, 2009, 04:39 PM
Stick with XCode. It has templates to setup a C or C++ project. You can then just type the examples out your book, click build & run and off it goes.
Transporteur
Nov 26, 2009, 05:05 PM
First advice, stop with this 'n00b', 'h4x0r', 'g33k' crap. Leet wasn't even cool when it started long time ago, and neither is it today!
Second, there is no reason not to start with object orientated programming right away.
It's much easier to learn it straight ahead.
I don't recommend learning Java in case that you want to learn Apple specified programming.
Go the direct route and make yourself familiar with Objective-C.
A good book I can highly recommend is 'Cocoa programming for Mac OS X' by Aaron Hillegass. Just make sure you get the latest (3rd) edition.
lee1210
Nov 26, 2009, 05:07 PM
Stick with XCode. It has templates to setup a C or C++ project. You can then just type the examples out your book, click build & run and off it goes.
... and you'll never know how to compile and run your code when you're on a machine without XCode. Text editor + terminal + gcc/g++ is where I think one should cut your teeth. When you get to the point that maintaining your makefiles is taking more time than writing your code, move to an IDE.
-Lee
nullx86
Nov 26, 2009, 05:24 PM
C and Objective C, then Java and C+...
Jason Beck
Nov 26, 2009, 05:26 PM
First advice, stop with this 'n00b', 'h4x0r', 'g33k' crap. Leet wasn't even cool when it started long time ago, and neither is it today!
Second, there is no reason not to start with object orientated programming right away.
It's much easier to learn it straight ahead.
I don't recommend learning Java in case that you want to learn Apple specified programming.
Go the direct route and make yourself familiar with Objective-C.
A good book I can highly recommend is 'Cocoa programming for Mac OS X' by Aaron Hillegass. Just make sure you get the latest (3rd) edition.
I agree. It wasn't cool in 1995 on Efnet IRC and it surely isn't now.
4gr33d!
jared_kipe
Nov 26, 2009, 05:36 PM
Second, there is no reason not to start with object orientated programming right away.
It's much easier to learn it straight ahead.
I disagree, I think it's a "learn to walk before you learn to run" kinda thing.
Firstly, even modern games and programs are still written in C for their performance and portability of code. So there is really no good reason NOT to learn C. Getting to know C's standard library of functions can solve problems down the line as well.
Secondly, learning C teaches you the fundamentals of programming and lets you appreciate the features of objects and methods.
Bottom line, I think learning C makes you a better Objective-C programmer. And you should be able to bang through "Learn C on the Mac" in just a couple of weeks.
chili
Nov 27, 2009, 12:31 AM
Thanks guys, you replied so quickly.....
I just ordered 3 books of the learn series
"learn c on the mac", "learn objective c on the mac", and "iphone 3 developing"
oh and btw 1m sup4 l33t h4x0r pwn4g3 LOL!
how long do you guys think it will take me to learn c?
RaceTripper
Nov 27, 2009, 12:54 AM
Java and C++ are both based on C, it is harder to learn either without some fundamental C knowledge.I can't think of a single reason to learn C if learning Java is the goal. C isn't going to teach you anything useful about Java you wouldn't learn by just starting Java off the bat, and it's more likely to create confusion learning Java.
I've taught Java programming classes for the last 9 years and had plenty of non-C programmers as students. As a Java developer I prefer working with Java programmers who did not come from C first, because C programmers working in Java often have bad habits, very non Java-like coding conventions, and tend to think less about OO and more about implementation details.
The only reason to learn C is if you need to program in C, and that's not very common anymore.
MorphingDragon
Nov 27, 2009, 02:13 AM
Why are people recommending C like languages to someone who only knows a scripting language?
---
If it really is your first steps into the non-scripted programming world, I'd go for RealBasic(Or a BASIC derivative) or Python. They're simple Object Orientated languages that will teach you the basics of OO.
newb16
Nov 27, 2009, 05:58 AM
Why are people recommending C like languages to someone who only knows a scripting language?
Because they believe that knowing C basics is more important for writing in ObjC than abstract object-oriented programming applied directly to newbie. Using OO in real Cocoa programs is imposed by the framework, benefits of OOP in helloworld-level programs are not clear.
Transporteur
Nov 27, 2009, 06:21 AM
I disagree, I think it's a "learn to walk before you learn to run" kinda thing.
.
Of course you have to get the basics, but that should not take that long.
I've learned Java (still my language of choice :rolleyes:) in college and we spend less than a semester for the basics and then started with object orientation.
I'd think that the step to OOP is much more difficult to people who have done modular programming for years.
MorphingDragon
Nov 27, 2009, 07:30 AM
Because they believe that knowing C basics is more important for writing in ObjC than abstract object-oriented programming applied directly to newbie. Using OO in real Cocoa programs is imposed by the framework, benefits of OOP in helloworld-level programs are not clear.
Thats the thing, C IS PROCEDURAL. You don't actually need to "know" C to use Obj-C. As Steven very quick to tell people. You can use "C" with Obj-C but you are still mainly using Smalltalk style Syntax. Learning C in a way would be counter productive unless you're actually going to do kernel functions, if you're only interested in creating OO UserLand programs...
---
How dare you belittle Hello World. It is the milestone of any programmer. :D
ranguvar
Nov 27, 2009, 09:13 AM
Hey guys i'm 14 years old and i'm a pretty big mac/iphone h4x0r.
I have decided to start to learn programming but i'm a total n00b.
I've made some cool applescript applications but now i wanna start for real.
Should I learn C++ or Java? I know Java os more object-based and easier to work with but c++ is just a language everybody should know.
Also, do you guys know a good book that can get me started? Oh, and also what app should i use? I know theres eclipse and also netbeans.
PLEASE HELP I NEED TO KNOW WHERE TO START!!!!!
P.S. I don't have anyone who can help me except for my dad who knows pascal and is a pretty big g33k himself... :apple:4life
Contrary to what some people may tell you, don't learn C. It's procedural, but for anything big you'll need object orientation. It's a bit hard to understand at first, but once you get it, it's very helpful.
If you want to learn either C++ or Java, I'd say go with Java. You get to have garbage collection but not those very advanced (and thus rather confusing) C++ features .
Plus, I believe Java's standard library is superior to C++'s, and learning Java keeps the focus on learning object oriented programming.
Lastly, don't write in leet, and don't say "Apple 4 Life". That's for amateurs, not programmers ;).
chili
Nov 27, 2009, 09:55 AM
I dont know anything about this stuff but MorphingDragon and ranguvar seem to be right.
The only problem is that i already ordered the books.
so would you guys recommend starting with the second one "learn objective c on mac"? wouldn't it be too hard for me if i have absolutely no background in programming?
RaceTripper
Nov 27, 2009, 10:47 AM
I dont know anything about this stuff but MorphingDragon and ranguvar seem to be right.
The only problem is that i already ordered the books.
so would you guys recommend starting with the second one "learn objective c on mac"? wouldn't it be too hard for me if i have absolutely no background in programming?Don't bother with C. It's more likely to hinder you than help you, unless you have a reason to learn that language specifically (i.e. you plan to do very low level programming).
Look, if you want to learn programming, you should learn OO, and one of the best books out there is Bruce Eckels Thinking in Java (http://www.amazon.com/gp/product/0131872486/ref=pd_lpo_k2_dp_sr_1?pf_rd_p=486539851&pf_rd_s=lpo-top-stripe-1&pf_rd_t=201&pf_rd_i=0131002872&pf_rd_m=ATVPDKIKX0DER&pf_rd_r=1QB7VP538ETTZN1SQDS0) or Thinking in C++ (http://www.amazon.com/Thinking-Introduction-Standard-One-2nd/dp/0139798099/ref=pd_sim_b_2) Which OO language you learn is less important as how you go about learning OO. Eckel's book is one of the best ways to get there.
lee1210
Nov 27, 2009, 12:18 PM
Just start. You're not going to be irreparably damaged by any of the languages or paradigms mentioned here. Don't start with BASIC or fortran, and you'll be fine. any antecdotal evidence of some programmer being unable to adapt to a new language or paradigm means they are a bad programmer, not that they are poisoned by past experience with a particular language.
I feel that background with C gives a better understanding of how the machine, memory model, etc works. And it makes you appreciate a garbage collected or retain-counted memory management system, and might just make you aware of leaking references, etc. With that said, you can live without those things, and come back to them later if you want.
The main point is just do it. Whatever language and paradigm you start with will not make or break your future in programming. Algorithms and problem-solving are the crux, the language and paradigm are just details. You should be able to pick up a new language pretty quickly, and match the style of any team. That is the easy part.
If you're getting frustrated, then change gears. Giving up is the only thing that will have permanent negative repercussions. Those of us that might argue about the minutae are nerds, and the only reason this gets dragged out so often is passion for programming. Hopefully you get the same spark, and in a few years you'll be a nerd arguing about some inconsequential technical detail.
Good luck, get coding.
-Lee
chili
Nov 27, 2009, 12:27 PM
Just start. You're not going to be irreparably damaged by any of the languages or paradigms mentioned here. Don't start with BASIC or fortran, and you'll be fine. any antecdotal evidence of some programmer being unable to adapt to a new language or paradigm means they are a bad programmer, not that they are poisoned by past experience with a particular language.
I feel that background with C gives a better understanding of how the machine, memory model, etc works. And it makes you appreciate a garbage collected or retain-counted memory management system, and might just make you aware of leaking references, etc. With that said, you can live without those things, and come back to them later if you want.
The main point is just do it. Whatever language and paradigm you start with will not make or break your future in programming. Algorithms and problem-solving are the crux, the language and paradigm are just details. You should be able to pick up a new language pretty quickly, and match the style of any team. That is the easy part.
If you're getting frustrated, then change gears. Giving up is the only thing that will have permanent negative repercussions. Those of us that might argue about the minutae are nerds, and the only reason this gets dragged out so often is passion for programming. Hopefully you get the same spark, and in a few years you'll be a nerd arguing about some inconsequential technical detail.
Good luck, get coding.
-Lee
Thanks, that really inspired me. Plus, it's better to know more languages right? learning c will absolutely not be a waste of time. The books are coming in between the 3rd or the 9th of December, but meanwhile im gonna look up some tutorials. Thanks Again
mac2x
Nov 27, 2009, 12:42 PM
Just start. You're not going to be irreparably damaged by any of the languages or paradigms mentioned here. Don't start with BASIC or fortran, and you'll be fine. any antecdotal evidence of some programmer being unable to adapt to a new language or paradigm means they are a bad programmer, not that they are poisoned by past experience with a particular language.
I feel that background with C gives a better understanding of how the machine, memory model, etc works. And it makes you appreciate a garbage collected or retain-counted memory management system, and might just make you aware of leaking references, etc. With that said, you can live without those things, and come back to them later if you want.
The main point is just do it. Whatever language and paradigm you start with will not make or break your future in programming. Algorithms and problem-solving are the crux, the language and paradigm are just details. You should be able to pick up a new language pretty quickly, and match the style of any team. That is the easy part.
If you're getting frustrated, then change gears. Giving up is the only thing that will have permanent negative repercussions. Those of us that might argue about the minutae are nerds, and the only reason this gets dragged out so often is passion for programming. Hopefully you get the same spark, and in a few years you'll be a nerd arguing about some inconsequential technical detail.
Good luck, get coding.
-Lee
As another n00b (yes, I am going to get back to my other thread this weekend), this is inspiring for me too. Thanks. :)
As to Xcode, I use it for text editing and then compile in Terminal.
dejo
Nov 27, 2009, 12:52 PM
As to Xcode, I use it for text editing and then compile in Terminal.
Why not just compile from within Xcode?
chown33
Nov 27, 2009, 01:07 PM
how long do you guys think it will take me to learn c?
No one can answer that. It will take as long as it takes. None of us know you, nor your background or experience, nor what things you're proficient at. Like anything else, some people have a natural talent for some things. Conversely, some people need more time or a different approach to learn something. Or it never really engagesthem so it always remains out of reach.
Part of the process of growing up is finding your natural talents, as well as your natural affinities: the things you really like doing, for no other reason than you like doing them.
Don't stop exploring new things just because you like one thing already. I was entranced by chemistry as a teen until I discovered electronics. Part way through my electronics degree I discovered software. So my degree is in electronics but my career is in software development (with only the occasional bit of electronics). The thread that runs through them all is making things work, and taking things apart to see how they work.
RaceTripper
Nov 27, 2009, 01:13 PM
No one can answer that. It will take as long as it takes. Another way to look at it is to answer, "never."
You learn as much of a programming language as you need or want to, but nobody really learns all of a given programming language. I've been programming and teaching Java since 1997 and there are vast parts of the language I don't know. I learn new aspects of the language on a need/want to know basis. Ditto for C++, Perl, Ruby, Python, C, SQL, JavaScript, etc., etc.
xStep
Nov 27, 2009, 03:56 PM
I just ordered 3 books of the learn series
"learn c on the mac", "learn objective c on the mac", and "iphone 3 developing"
Based on the first line in your first post and the books you ordered, it sounds like you want to create Mac and iPhone apps. So for now forget Java and it's IDEs.
As for learning C or not. I think if you learn that first you'll get a good grounding for knowledge you'll need in Objective-C. Since you'll not have much experience in C, I doubt it will interfere with learning the OOP concepts.
roadbloc
Nov 27, 2009, 04:02 PM
C++, Xcode and (my favourite) BASIC :D
Dont waste your time with Java.
RaceTripper
Nov 27, 2009, 04:05 PM
C++, Xcode and (my favourite) BASIC :D
Dont waste your time with Java.How about explaining why Java is a waste of time (because I totally disagree), instead of making blanket unsupported statements. I could just as well say BASIC is a waste of time.
jared_kipe
Nov 27, 2009, 06:16 PM
How about explaining why Java is a waste of time (because I totally disagree), instead of making blanket unsupported statements. I could just as well say BASIC is a waste of time.
Blanket statements like....
The only reason to learn C is if you need to program in C, and that's not very common anymore.
Learning to program in C (at least as far as reading through the "Learn C on the Mac" book goes) will not teach anyone bad habits in an OO programming world.
Seriously, how many threads have we all seen where people are asking for help with trivial subjects like primitives, pointers, or C-Style Arrays. All of that would make so much more sense after "learning C" than if they just jump straight into an Objective-C book or iPhone dev book.
Let us not forget that Objective-C is C!!! Seriously, selectors are just functions, and class variables are just structs. There is nothing that Objective-C can do for you that you cannot do for yourself in C. Objective-C/Foundation/Cocoa all just provide immensely useful functions and structs (classes).
RaceTripper
Nov 27, 2009, 06:42 PM
Blanket statements like....
Learning to program in C (at least as far as reading through the "Learn C on the Mac" book goes) will not teach anyone bad habits in an OO programming world.
Seriously, how many threads have we all seen where people are asking for help with trivial subjects like primitives, pointers, or C-Style Arrays. All of that would make so much more sense after "learning C" than if they just jump straight into an Objective-C book or iPhone dev book.
Let us not forget that Objective-C is C!!! Seriously, selectors are just functions, and class variables are just structs. There is nothing that Objective-C can do for you that you cannot do for yourself in C. Objective-C/Foundation/Cocoa all just provide immensely useful functions and structs (classes).Fair enough. I failed to consider that aspect. My bad. C is used for programming in Objective C, but it's less useful to learn so if that isn't the goal. If C++ is the goal, then I think learning it to start is a perfectly good path.
But to state that Java is a waste of time is ludicrous, especially if you're interested in making a living out of programming. It's a perfectly valid and powerful language, and it's ubiquitous. There are far fewer opportunities to make a living as an Objective-C programmer.
fernandovalente
Nov 27, 2009, 07:28 PM
Forget about Java. If you pretend to program to the Mac, you better learn C, then learn Objective-C. It's not hard. I found many books, but the only good book I found is called Cocoa Programming for Mac OS X 3rd edition. It was wrote by a man who worked for NeXT, then he taught Objective-C to Apple employees. This book is really really good. You just have to have a little knowledge in C or C++. It doesn't make you give up and explain everything in a easy way to understand.
dejo
Nov 27, 2009, 08:16 PM
Let us not forget that Objective-C is C!!!
No, it's more than C, since it's a superset of C.
There is nothing that Objective-C can do for you that you cannot do for yourself in C.
How about anything OOP?
mac2x
Nov 27, 2009, 11:13 PM
Why not just compile from within Xcode?
No specific reason, I guess. Just to get familiar with using Terminal, I suppose.
jared_kipe
Nov 28, 2009, 12:04 AM
No, it's more than C, since it's a superset of C.
How about anything OOP?
It is a superset of C, but the objective-c runtime is programmed and implemented in C. Every method/selector is a static function. You can ABSOLUTELY create functions that work on structs, and that is really what object oriented programming boils down to. In fact, we have all worked with functions that return already setup structs such as NSMakeRange();
A good example of OOP in "C" only would be functions like this (Quartz drawing)
CGContextSetRGBFillColor (myContext, 1, 0, 0, 1);
Its a C function that takes a Core Graphics Context "Object" and sets the color.
I ASSURE you if you wanted to implement "Objects" in C it would be 100% possible. Its just not setup for you.
For further reading check out any Apple documentation on Core Foundation.
http://developer.apple.com/mac/library/documentation/CoreFoundation/Reference/CFStringRef/Reference/reference.html
Look! String objects implemented, written, and accessed in C !!!11!
Oh and there are functions CFRetain(); and CFRelease(); that are just C functions that you send an object pointer.
appledyl
Nov 28, 2009, 12:07 AM
Yeah I'm also only 14 and starting programming. I only know XHTML, CSS, HTML, some Flash, etc. Should I start with C or C++???
fernandovalente
Nov 28, 2009, 12:08 AM
Yeah I'm also only 14 and starting programming. I only know XHTML, CSS, HTML, some Flash, etc. Should I start with C or C++???
C. Objective-C is a superset of C.
chili
Nov 28, 2009, 03:03 AM
One more question,
At what age do people usually start programming?
Am I too young or too old?
I know Bill Gates and Paul Allen started at 13/14....
Winni
Nov 28, 2009, 05:25 AM
"Some people seem to think that C is a real programming language, but they are sadly mistaken.”
- Linus Torvalds
Since only few people will have written more code in C than Linus Torvalds has, just take his word for it. And in my own programming experience, C is just a low level system programming language - nothing you would use to --efficiently-- write applications with.
Pascal can do the very same job as C, and it actually has been used even by Apple to write parts of the old Mac OS. That was before C, and later C++, and then Java, became all the hype - and marketing.
Objective-C is not, and will never become, a mainstream language. It's the choice if you want to stay in Apple land, but in the rest of the world, Objective-C is of absolutely no use because nobody uses it. Repeat: Objective-C is exclusive to Apple. Unless you are married to Apple, don't bother learning it.
C# is what Java always was supposed to be, but never managed to become. It's one of the things that Microsoft really did right: A programming language for programmers. Java, on the opposite corner, is a programming language for project managers and maybe academics. Too many unnecessary rules and protocols that are just in your way. C# and the .NET framework were designed to get a job done. On a personal note, C# is the only "curly braces" language that I do not find ugly as hell or that I hate with a passion.
However, programming languages are only means to end and tools to get a job done. And there is no "one true" programming language that's ideal for all purposes. It always depends on what you actually want to do.
Would I use something other than BlitzMax to write a game? I doubt it. I wouldn't write an own 3D engine, I would just use an already existing one. And -oops- there goes my need to use C or C++. Compiled BlitzMax code is almost as fast as optimized C++ code, but BlitzMax is a much more efficient language to code in than C++. So why should I slow myself down by using an object-oriented systems programming language when I could use something that's far more comfortable to use?
I wouldn't use Java for GUI apps. Except for SWT, Java does not have a GUI toolkit that looks native on any platform. And, as already said, Java slows you down with all its unnecessary protocols and academic design choices. It's no longer painfully slow, but it's also not as nice to use as C#. And with the Mono framework, I can also be truly platform independent with C#, so there is no need to use Java. None at all.
Python. That's probably a great language to learn programming, especially since it is a hybrid scripting language that supports various programming paradigms. You can write procedural code with Python, but you can also use an object-oriented style. (Okay, the same can be said about C++.) However, I wouldn't use Python to write GUI apps that I want to sell - the deployment issues alone are a pain in the neck. It's a great scripting language for Linux servers, though.
So... Where would I start if I had to do it again? Back in the early 80s the answer was simple: BASIC. It was the only thing that was pre-installed on the computer, so there was little choice other than using what the computer manufacturer gave you.
But today? Difficult, because there are so many possible routes and once again, it all depends on where you actually want to go.
Starting with Python probably is the safest thing. It's free, it exists for all platforms, it has many uses, it is powerful and always a handy tool in -any- environment, may that be at home or in a company.
After that, I'd probably learn C#.
If you want to go professional, you also should learn the basics about C. At least enough to be able to read and understand some source code. You don't have to actually use it yourself. Keep in mind: It's a widely used systems programming language. And unless you want to write the next version of the Linux kernel or the next 3D engine for id Software, you really don't have to be a C Guru in this world.
And as I've already said: Objective-C is an Apple-only thing. And I don't want to marry Steve Jobs, that's for sure.
Cromulent
Nov 28, 2009, 05:42 AM
How about anything OOP?
You can do object orientated programming in C. It just takes more work and results in slightly klunky syntax when compared with languages that offer it "natively".
carlosbutler
Nov 28, 2009, 05:47 AM
I didn't know any programming languages before I went to uni (I knew a fair amount of JavaScript and SQL PHP stuff although thats piss easy really) and the first languages we were taught were Haskell (because we were doing logic and functional programming and therefore i would ignore) and Java for OO.
At the moment I am personally learning to program for iPhone because thats what I want to do. So I would learn a language that you are actually going to use, considering that you are still at school you wont need to earn any money of them so look around and see which one you fancy trying, if you dont like it change to something else.
MorphingDragon
Nov 28, 2009, 06:00 AM
Just start. You're not going to be irreparably damaged by any of the languages or paradigms mentioned here. Don't start with BASIC or fortran, and you'll be fine. any antecdotal evidence of some programmer being unable to adapt to a new language or paradigm means they are a bad programmer, not that they are poisoned by past experience with a particular language.
I feel that background with C gives a better understanding of how the machine, memory model, etc works. And it makes you appreciate a garbage collected or retain-counted memory management system, and might just make you aware of leaking references, etc. With that said, you can live without those things, and come back to them later if you want.
The main point is just do it. Whatever language and paradigm you start with will not make or break your future in programming. Algorithms and problem-solving are the crux, the language and paradigm are just details. You should be able to pick up a new language pretty quickly, and match the style of any team. That is the easy part.
If you're getting frustrated, then change gears. Giving up is the only thing that will have permanent negative repercussions. Those of us that might argue about the minutae are nerds, and the only reason this gets dragged out so often is passion for programming. Hopefully you get the same spark, and in a few years you'll be a nerd arguing about some inconsequential technical detail.
Good luck, get coding.
-Lee
Wow lee, you'd be good at writing books!
MorphingDragon
Nov 28, 2009, 06:15 AM
"Some people seem to think that C is a real programming language, but they are sadly mistaken.”
- Linus Torvalds
Since only few people will have written more code in C than Linus Torvalds has, just take his word for it. And in my own programming experience, C is just a low level system programming language - nothing you would use to --efficiently-- write applications with.
Pascal can do the very same job as C, and it actually has been used even by Apple to write parts of the old Mac OS. That was before C, and later C++, and then Java, became all the hype - and marketing.
Objective-C is not, and will never become, a mainstream language. It's the choice if you want to stay in Apple land, but in the rest of the world, Objective-C is of absolutely no use because nobody uses it. Repeat: Objective-C is exclusive to Apple. Unless you are married to Apple, don't bother learning it.
C# is what Java always was supposed to be, but never managed to become. It's one of the things that Microsoft really did right: A programming language for programmers. Java, on the opposite corner, is a programming language for project managers and maybe academics. Too many unnecessary rules and protocols that are just in your way. C# and the .NET framework were designed to get a job done. On a personal note, C# is the only "curly braces" language that I do not find ugly as hell or that I hate with a passion.
However, programming languages are only means to end and tools to get a job done. And there is no "one true" programming language that's ideal for all purposes. It always depends on what you actually want to do.
Would I use something other than BlitzMax to write a game? I doubt it. I wouldn't write an own 3D engine, I would just use an already existing one. And -oops- there goes my need to use C or C++. Compiled BlitzMax code is almost as fast as optimized C++ code, but BlitzMax is a much more efficient language to code in than C++. So why should I slow myself down by using an object-oriented systems programming language when I could use something that's far more comfortable to use?
I wouldn't use Java for GUI apps. Except for SWT, Java does not have a GUI toolkit that looks native on any platform. And, as already said, Java slows you down with all its unnecessary protocols and academic design choices. It's no longer painfully slow, but it's also not as nice to use as C#. And with the Mono framework, I can also be truly platform independent with C#, so there is no need to use Java. None at all.
Python. That's probably a great language to learn programming, especially since it is a hybrid scripting language that supports various programming paradigms. You can write procedural code with Python, but you can also use an object-oriented style. (Okay, the same can be said about C++.) However, I wouldn't use Python to write GUI apps that I want to sell - the deployment issues alone are a pain in the neck. It's a great scripting language for Linux servers, though.
So... Where would I start if I had to do it again? Back in the early 80s the answer was simple: BASIC. It was the only thing that was pre-installed on the computer, so there was little choice other than using what the computer manufacturer gave you.
But today? Difficult, because there are so many possible routes and once again, it all depends on where you actually want to go.
Starting with Python probably is the safest thing. It's free, it exists for all platforms, it has many uses, it is powerful and always a handy tool in -any- environment, may that be at home or in a company.
After that, I'd probably learn C#.
If you want to go professional, you also should learn the basics about C. At least enough to be able to read and understand some source code. You don't have to actually use it yourself. Keep in mind: It's a widely used systems programming language. And unless you want to write the next version of the Linux kernel or the next 3D engine for id Software, you really don't have to be a C Guru in this world.
And as I've already said: Objective-C is an Apple-only thing. And I don't want to marry Steve Jobs, that's for sure.
Thats a lot of subjectivity in there. I know people that hate C# BECAUSE OF .Net. I don't "like" .Net because of the unnecessary bloat it adds to programs (I had a BASIC app that went from 456KB to 1.2MB porting to .Net) and the lock-in it causes.
IMO, if I had to learn C++ or C#, I'd go C++ with QT. I'm only learning Obj-C because were porting my dads lawfirm to macs but I've also taken a shine to Obj-C and Cocoa. So when/if I learn C++ I can use QT on other platforms and Obj-C++ on Mac OSX.
Cromulent
Nov 28, 2009, 06:29 AM
C# is what Java always was supposed to be, but never managed to become. It's one of the things that Microsoft really did right: A programming language for programmers. Java, on the opposite corner, is a programming language for project managers and maybe academics. Too many unnecessary rules and protocols that are just in your way. C# and the .NET framework were designed to get a job done. On a personal note, C# is the only "curly braces" language that I do not find ugly as hell or that I hate with a passion.
C# and Java are almost exactly the same. There a few very small syntactic differences but the real difference comes with cross platform compatibility and for that Java wins hands down all the time.
Mono does not support most of the recent .Net 3.5 features and is unlikely to support .Net 4 for ages therefore you can't truly call it a cross platform solution.
Java on the other hand is supported by just about every major operating system under the sun (and some not so major ones too). Performance between the two is pretty comparable too.
MrFusion
Nov 28, 2009, 06:50 AM
One more question,
At what age do people usually start programming?
When they get interested in doing so. Which can be 9 or 99.
Am I too young or too old?
You are the right age. You are the right age, because you have the reached the point where you want to learn it. Don't let anyone tell you that you are too young or too old to learn something. Sometimes it might be a bid idea to do it, though. Skydiving at 100 years. Having kids at 14 years. But you can always learn the principles behind it. Parachute design or how best to teach children something.
I know Bill Gates and Paul Allen started at 13/14....
Who cares what other people did. What you want to do (with your life) is more important. Within limitations, you obviously can't go around murdering people without consequences. Ask the advice of people who have your best interest at heart, but in the end it is your decision. You have to live with yourself, we don't. But it would be nice if you take us into consideration. Now, get of my lawn.
RaceTripper
Nov 28, 2009, 09:31 AM
...I ASSURE you if you wanted to implement "Objects" in C it would be 100% possible. Its just not setup for you.
...
You can do object orientated programming in C. It just takes more work and results in slightly klunky syntax when compared with languages that offer it "natively".
I am interested to know how you would do polymorphism (dynamic binding) in C, because without that you do not have OOP.
Cromulent
Nov 28, 2009, 09:51 AM
I am interested to know how you would do polymorphism (dynamic binding) in C, because without that you do not have OOP.
Void pointers.
Edit: To go into greater detail you implement a base class (struct) with a void pointer and have every other struct "inherit" from it. That base class then holds a pointer to the specific instance of every class allowing you to determine its type at runtime.
lee1210
Nov 28, 2009, 11:51 AM
I just trudged through all of my old posts to try to find some threads like this, in case there were things mentioned there, arguments made, etc. Here's the list:
General getting started threads:
http://forums.macrumors.com/showthread.php?t=760248
http://forums.macrumors.com/showthread.php?t=758249
http://forums.macrumors.com/showthread.php?t=655790
http://forums.macrumors.com/showthread.php?t=575060
This links to many the threads,too.
http://forums.macrumors.com/showthread.php?t=555811
http://forums.macrumors.com/showthread.php?t=536659
http://forums.macrumors.com/showthread.php?t=530000
http://forums.macrumors.com/showthread.php?t=528436
Things that may be of interest:
http://forums.macrumors.com/showthread.php?t=626619
http://forums.macrumors.com/showthread.php?t=588400
http://forums.macrumors.com/showthread.php?t=521631
http://forums.macrumors.com/showthread.php?t=488733
http://forums.macrumors.com/showthread.php?t=476271
It can sometimes be hard to search for exactly what one might want, so maybe these will be helpful.
-Lee
scotteh
Nov 30, 2009, 12:56 AM
well, i am 17 and have applied to various colleges in hopes of learning computer science (w.e that means. general term). anyways, i too would like to learn a language, but i dont know what the difference between java, c, c++, etc is. could someone help eliminate my ignorance? basically, what is java used to create? c? so on and so forth?
trule
Nov 30, 2009, 03:18 AM
well, i am 17 and have applied to various colleges in hopes of learning computer science (w.e that means. general term). anyways, i too would like to learn a language, but i dont know what the difference between java, c, c++, etc is. could someone help eliminate my ignorance? basically, what is java used to create? c? so on and so forth?
Just pick one and start! If you are going to be a programmer or software engineer then you are going to use so many different languages that it won't matter where you started.
nullx86
Nov 30, 2009, 03:48 AM
C++, Xcode and (my favourite) BASIC :D
Dont waste your time with Java.
why is java a waste of time??
Java is used in pretty much everything nowadays, and is a good essential language to know..
C/C++ are good to start with, and then moving to Java and .NET would be good. Perl, Python and Ruby would be some good ones to learn as well. Correct me if I am wrong, but OO coding is only good for Windows and linux, not Mac OS, right? Just started my Bachelors for Computer Engineering, not in my programming classes yet, so I dont know much...
well, i am 17 and have applied to various colleges in hopes of learning computer science (w.e that means. general term). anyways, i too would like to learn a language, but i dont know what the difference between java, c, c++, etc is. could someone help eliminate my ignorance? basically, what is java used to create? c? so on and so forth?
Tell me your not going for a general degree. You wont get much in the line of work that way. Pick something definitive, like programming/engineering, Game System engineering/programming, etc. Try to go with a college that offers jobs after college completion. I go to DeVry and have a choice of pretty much any job I want. Just some food for thought. As for the languages, C/C++ are the most common, and afaik know are used for games the most. Java is used in about everything now. Cell phones, mp3 players, web-based email, some game consoles, you name it. Hell, even some point of sale registers use it.
MorphingDragon
Nov 30, 2009, 04:58 AM
why is java a waste of time??
Java is used in pretty much everything nowadays, and is a good essential language to know..
C/C++ are good to start with, and then moving to Java and .NET would be good. Perl, Python and Ruby would be some good ones to learn as well. Correct me if I am wrong, but OO coding is only good for Windows and linux, not Mac OS, right? Just started my Bachelors for Computer Engineering, not in my programming classes yet, so I dont know much...
Tell me your not going for a general degree. You wont get much in the line of work that way. Pick something definitive, like programming/engineering, Game System engineering/programming, etc. Try to go with a college that offers jobs after college completion. I go to DeVry and have a choice of pretty much any job I want. Just some food for thought. As for the languages, C/C++ are the most common, and afaik know are used for games the most. Java is used in about everything now. Cell phones, mp3 players, web-based email, some game consoles, you name it. Hell, even some point of sale registers use it.
OO is good on any platform on any CPU on any OS. OO is a programming style, (Style used loosely) and is praised highly for its simplicity and power.
OO; here is object, do stuff to this object, object returns value.
Procedural; worry about what to apply this code too later. But as it stands Procedural languages are the only way to make an OS kernel.
chown33
Nov 30, 2009, 02:48 PM
Correct me if I am wrong, but OO coding is only good for Windows and linux, not Mac OS, right?
That's wrong. Those languages you mentioned (Perl, Python, Ruby, Java) all run on Mac OS X. So does Objective-C, which is definitely OO.
Read the Wikipedia articles:
http://en.wikipedia.org/wiki/Object-oriented_programming
http://en.wikipedia.org/wiki/Perl
http://en.wikipedia.org/wiki/Python_(programming_language)
http://en.wikipedia.org/wiki/Ruby_(programming_language)
http://en.wikipedia.org/wiki/Java_(programming_language)
http://en.wikipedia.org/wiki/Objective-C
Java is used in about everything now. Cell phones, mp3 players, web-based email, some game consoles, you name it. Hell, even some point of sale registers use it.
The Java in cell phones etc. is different from the Java that runs on Macs or PCs (J2ME vs. JSE). It's more restricted and limited, and enough different that many things taken for granted in JSE are a huge PITA in J2ME.
There are also a large number of things that don't run Java, or where it's more of a toy language than a real development tool. The reasons for not running Java may be technical, or economic, or even political (some companies hate Sun).
In general, I don't think learning Java would be a waste of time, but it might not be the first language to learn. It depends a lot on what goal the learner has. If it's to write iPhone apps, then yeah, learning Java is probably a waste of time, because you'll be unlikely to write any iPhone apps with it.
chown33
Nov 30, 2009, 02:53 PM
But as it stands Procedural languages are the only way to make an OS kernel.
An OS kernel can be made in any language with adequate low-level constructs to perform the functions of a kernel. For example, C++, Objective-C, or Java with JNI support. There are probably other languages that would also work, which are not primarily procedural.
nullx86
Nov 30, 2009, 03:46 PM
That's wrong. Those languages you mentioned (Perl, Python, Ruby, Java) all run on Mac OS X. So does Objective-C, which is definitely OO.
Read the Wikipedia articles:
http://en.wikipedia.org/wiki/Object-oriented_programming
http://en.wikipedia.org/wiki/Perl
http://en.wikipedia.org/wiki/Python_(programming_language (http://en.wikipedia.org/wiki/Python_%28programming_language))
http://en.wikipedia.org/wiki/Ruby_(programming_language (http://en.wikipedia.org/wiki/Ruby_%28programming_language))
http://en.wikipedia.org/wiki/Java_(programming_language (http://en.wikipedia.org/wiki/Java_%28programming_language))
http://en.wikipedia.org/wiki/Objective-C
The Java in cell phones etc. is different from the Java that runs on Macs or PCs (J2ME vs. JSE). It's more restricted and limited, and enough different that many things taken for granted in JSE are a huge PITA in J2ME.
There are also a large number of things that don't run Java, or where it's more of a toy language than a real development tool. The reasons for not running Java may be technical, or economic, or even political (some companies hate Sun).
In general, I don't think learning Java would be a waste of time, but it might not be the first language to learn. It depends a lot on what goal the learner has. If it's to write iPhone apps, then yeah, learning Java is probably a waste of time, because you'll be unlikely to write any iPhone apps with it.
ahh, ok, only said i thought OO didnt run on OSX cause I heard someone say that, guesss they were full of it :p told you i still have a lot to learn... thanks for the links, ill go read
lee1210
Nov 30, 2009, 03:56 PM
ahh, ok, only said i thought OO didnt run on OSX cause I heard someone say that, guesss they were full of it :p told you i still have a lot to learn... thanks for the links, ill go read
Maybe whomever said this was talking about OpenOffice.org in it's early days? It is often called OO or OO.org. I don't know if there was ever a time it didn't run at all on OS X, but it's possible. As has been mentioned Object-Oriented Programming/Design is a programming paradigm... for an operating system to "not support" OO in this context it would need to be a pretty narrow system that only allows compilation of a single language (that isn't object-oriented..), etc.
-Lee
MorphingDragon
Nov 30, 2009, 04:10 PM
An OS kernel can be made in any language with adequate low-level constructs to perform the functions of a kernel. For example, C++, Objective-C, or Java with JNI support. There are probably other languages that would also work, which are not primarily procedural.
Don't confuse an OS Kernel with Userland.
The only operating system that got close to a pure OO kernel was BeOS. But fairly major parts of it still had to be written in C. There is some project run by Illinois University to make a pure OO OS kernel but its hardly in a fully functioning state.
chown33
Nov 30, 2009, 04:51 PM
Don't confuse an OS Kernel with Userland.
I'm not. I've done enough work on both sides to know the difference.
The only operating system that got close to a pure OO kernel was BeOS. But fairly major parts of it still had to be written in C. There is some project run by Illinois University to make a pure OO OS kernel but its hardly in a fully functioning state.
What I easily found:
http://en.wikipedia.org/wiki/JX_(operating_system)
http://en.wikipedia.org/wiki/JNode
http://en.wikipedia.org/wiki/JavaOS
I'm also not sure whether you'd classify assembly language or Forth as procedural, but there are certainly kernels written in those.
Just because something isn't widely known doesn't mean it can't exist. If you had written that procedural languages were common, or even dominant, when writing kernels, I wouldn't have disagreed. But you wrote that procedural languages are "the only way to make an OS kernel" (emphasis added), and I think there's adequate theory and practice to refute "only".
Zombie Acorn
Nov 30, 2009, 05:55 PM
I started out doing some procedural and still do for some of my robot projects, but I think object oriented is much easier to understand/use. Either way I don't think you are going to harm yourself by learning both/either/or anything at all. If you are 14 you still have a lot of time to make decisions and soak up information. The main thing is to not get frustrated and quit.
scotteh
Nov 30, 2009, 06:10 PM
Tell me your not going for a general degree. You wont get much in the line of work that way. Pick something definitive, like programming/engineering, Game System engineering/programming, etc. Try to go with a college that offers jobs after college completion. I go to DeVry and have a choice of pretty much any job I want. Just some food for thought. As for the languages, C/C++ are the most common, and afaik know are used for games the most. Java is used in about everything now. Cell phones, mp3 players, web-based email, some game consoles, you name it. Hell, even some point of sale registers use it.
well i have just applied for a general degree. i know i will specialize in the future, but I am not sure which area I want to go into.
sheepopo39
Nov 30, 2009, 07:57 PM
I first learned Basic (:O I used QBasic), then some other programming languages like VB, then I learned C++, then Objective-C. Frankly, I never really learned C, and I have no desire to now. But yes, it would help, knowing C before you move onto Obj-C, even though I don't know it.
MorphingDragon
Dec 1, 2009, 03:05 AM
I'm not. I've done enough work on both sides to know the difference.
What I easily found:
http://en.wikipedia.org/wiki/JX_(operating_system)
http://en.wikipedia.org/wiki/JNode
http://en.wikipedia.org/wiki/JavaOS
I'm also not sure whether you'd classify assembly language or Forth as procedural, but there are certainly kernels written in those.
Just because something isn't widely known doesn't mean it can't exist. If you had written that procedural languages were common, or even dominant, when writing kernels, I wouldn't have disagreed. But you wrote that procedural languages are "the only way to make an OS kernel" (emphasis added), and I think there's adequate theory and practice to refute "only".
Maybe you should read the articles you post. All of them say that enough C/Procedural is written to allow OO to be written into the OS.
chown33
Dec 1, 2009, 12:55 PM
Maybe you should read the articles you post. All of them say that enough C/Procedural is written to allow OO to be written into the OS.
I don't think a small number of procedures automatically make a kernel (or an app or library) procedural. One must examine the overall design and implementation. If a single procedure were enough, then Cocoa would be procedural because it provides a small number of procedural functions.
Maybe I misunderstood your earlier statement. Procedures (or functions) are a part of some languages that are primarily object-oriented (such as Objective-C). This doesn't make the language procedural.
MorphingDragon
Dec 2, 2009, 01:43 AM
Maybe I misunderstood your earlier statement.
I said as it stands procedural is the only way to make an OS kernel. You're saying that some of it can be OO, but it still requires some procedural. That was what my point was supposed to be.
I'll use JavaOS as an example as you have an affinity to java. JavaOS can only run because enough Procedural language(C) is written to allow the JVM to run.
chili
Dec 2, 2009, 09:14 AM
My books got here today!!!! im really excited to learn, i read couple of pages and its really interesting and well written.
Thanks guys for all your support and answering my question so thoroughly!
chrysrobyn
Dec 2, 2009, 02:23 PM
oh and btw 1m sup4 l33t h4x0r pwn4g3 LOL!
how long do you guys think it will take me to learn c?
If your strategy is to ignore people who offer to help you communicate better, it's going to take a very long time to learn C on your own, and you'll probably give up before college, when you'll have another crack at it. If you drop the kiddie speak that stopped being cool before you were born, you can ask about stuff you get stuck on and actually hope to get a response, so learning will be as quick as you want.
sheepopo39
Dec 2, 2009, 03:20 PM
If your strategy is to ignore people who offer to help you communicate better, it's going to take a very long time to learn C on your own, and you'll probably give up before college, when you'll have another crack at it. If you drop the kiddie speak that stopped being cool before you were born, you can ask about stuff you get stuck on and actually hope to get a response, so learning will be as quick as you want.
I learned C++ on my own, and I'm not even in University/College yet, not sure about how hard C would be though.
gorn
Dec 2, 2009, 04:49 PM
Forget about the language, it's really not important, just learn to program. As you said, time spent learning [...] is not time wasted. When I was around 14 I wanted to learn programming and bought a few books and they were so boring so I didn't learn anything from them. Programmers (And 14 year olds too) are lazy, but they'll get excited over a personal itch. I did learn to program (Still at 14) when it wasn't about reading a book but about building something cool that I would actually use. (It was a Battle.NET chat bot if you're curious. Written in Perl because I found example code in that language.)
What program do you need? What would you change in an existing program (preferably open source)? What repetitive task do you have to do? What can you impress your friends with? (Spam your enemies is another idea...)
Learning programming languages is really easy. Learning to program is the hard part, and you will never finish.
So chose a project that you actually have a personal interest in doing. Then chose (or ask) a language that fits that project best.
Some ideas:
Google Chat/AIM/MSN/Facebook/Twitter bot that you and your friends can use to do something, perhaps integrate a few services, like an AIM bot that you can say !call Fred and it grabs the phone number from Facebook and integrates with google voice to ring your phone then his. Or maybe you can use MSN from your phone but not Twitter, so make some kind of relay.
Convert/organize/rename/whatever your images/mp3s/word documents/etc. Not a lot of room to grow here, but pretty easy to do a repetitive task on a bunch of files.
Firefox/Greasemonkey extension for some site you use often. Or modify an existing one like Better Than Gmail.
Mass-downloader - Parse a website and grab all the images/mp3s/pdfs/whatever from it on multiple pages. There's possible ethical concerns here but you are 14 and in the pursuit of knowledge so don't worry so much. Perhaps you find a site with hundreds of good C++ PDF tutorials and you want to download all of them.
dashcs
Dec 2, 2009, 05:07 PM
Man the poster is only 14 years old yet ppl here on going on and on what program language the kid should do when he goes into the workforce...
U mention you do HTML and flash?
U also do PHP?
Also you mention a iPhone programming book.
I get the impression since your posting on the mac forum,your own a apple computer and iPhone
At that point lets max your experience
Cocoa (Objective C ) will be your language.
Not only can you make apps on your computer,you can make them on your iPhone and show off to your friends :P
Btw programming books, most of time are horrible to learn from.
I find finding University programming courses webpages have the best info
Here are two links
Cocoa programming (which lucky for you the book you purchase is required for their course)
http://www.stanford.edu/class/cs193e/
iPhone programming
http://www.stanford.edu/class/cs193p/cgi-bin/index.php
Now back to the flame war.
I hate Java,it slow with too much overhead.
chili
Dec 3, 2009, 09:33 AM
guys it's not to hard to learn c.
the books came in yesterday and i already know about functions, variables and operators etc.
i realize that its easy to learn the BASICS but you can never stop learning
dejo
Dec 3, 2009, 09:44 AM
i realize that its easy to learn the BASICS but you can never stop learning
Good for you! Sounds like you are really enjoying things so far. That's great! You'd be surprised at the number of people that try to "jump into the deep end" first and don't even attempt to learn the basics first.
RaceTripper
Dec 3, 2009, 09:46 AM
guys it's not to hard to learn c.
the books came in yesterday and i already know about functions, variables and operators etc.
i realize that its easy to learn the BASICS but you can never stop learningWrite back when you've mastered pointers. ;)
jared_kipe
Dec 3, 2009, 11:40 AM
Write back when you've mastered pointers. ;)
I don't know why, but that came off somewhat mean. Don't know why.
Pointers aren't that bad. Function pointers are a little worse but unnecessary if you don't want to do some Object Oriented stuff in C.
RaceTripper
Dec 3, 2009, 12:11 PM
I don't know why, but that came off somewhat mean. Don't know why.
Pointers aren't that bad. Function pointers are a little worse but unnecessary if you don't want to do some Object Oriented stuff in C.It wasn't meant to be mean-spirited. It was just a little playful jab, thus the Winky.
I just thought it amusing for someone to a C-like language isn't hard before they have dealt with pointers. That's the first stumbling block for many learners. Some get it right away, many have trouble at first.
My first exposure was via handles in classic Mac toolbox. I struggled with that. :)
lostinspace2011
Dec 4, 2009, 06:56 AM
Learn Java. It is much easier to grasp and understand as it makes many OO concepts easier and is generally more forgiving and provides better error messages. Once you happy with that you can always move to C, C++ and OBJC.
A lot depends what kind of developer you want to be?
Business Developer: Java is the way to go. Many frameworks and libraries including J5/6EE, JSP, JSF etc.
Mac Only Developer: C, C++ and OBJC is the way to go.
Games Developer: C, Assembler and maybe C++. Most modern games are graphic intensive. For that you want something rather low level which definitely it not Java.
Web Developer : JSP, CSS, JavaScript, PERL, PYTHON, RUBY, but not C, C++ or OBJC.
Consider where you want to be in 5 years and what jobs are in your area ? Maybe also compare salaries.
In any case to learn Java you don't need to by expensive books:
http://java.sun.com/docs/books/tutorial/
http://www.planetpdf.com/developer/article.asp?ContentID=6632
http://www.solms.co.za (Registration required to download course material)
this should keep you entertained for a while.
PS: I am a Java developer by day to pay the bills and a Mac developer by night to keep me entertained.
xStep
Dec 4, 2009, 12:56 PM
A lot depends what kind of developer you want to be?
Consider where you want to be in 5 years and what jobs are in your area ?
Did you read the part where the kid said he is a 14 year old noob? How likely is it that he has any clue what kind of developer he wants to be, although the clue for his current interests is in the very first line.
How many 14 year olds know where they want to be in 5 years?
All of the above are rhetorical questions.
chili
Dec 4, 2009, 01:03 PM
Did you read the part where the kid said he is a 14 year old noob? How likely is it that he has any clue what kind of developer he wants to be, although the clue for his current interests is in the very first line.
How many 14 year olds know where they want to be in 5 years?
All of the above are rhetorical questions.
Thanks, xStep.
i really just wanna do it in my free time or as a separate job. I just learnt about functions and i'm starting to really love it. However, i would develop for the mac and the iPhone....
lostinspace2011
Dec 5, 2009, 04:21 AM
Did you read the part where the kid said he is a 14 year old noob? How likely is it that he has any clue what kind of developer he wants to be, although the clue for his current interests is in the very first line.
How many 14 year olds know where they want to be in 5 years?
All of the above are rhetorical questions.
Yes, I read that part, but I would have thought everybody has some aspiration where they want to be. And since he is asking the questions he seems to be rather smart. Most adults still don't know what they going to be in the next five years, but still have hopes. Personally I want to win the lottery, so buying lottery tickets is something that may help me get there. It's the same thing. If somebody wants to write the next really cool FPS game, Java will not help them, but if they want to write an app that will help mom & pop with their business it might just do the trick.
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.