|
On November 18 2008 20:04 Cambium wrote: In any case, learning on your own is EXTREMELY hard. Classes -> Internship is the way to go.
I do not agree. I have learned C++/C, BASIC, x86 ASM, Java, TCL/Expect and C# to a level where I am actually employed working with them (not BASIC thank god...), and I did it on my own time.
I guess programming classes can be a good support if you are just starting out, but if you don't do a lot of experimenting and learning outside of those classes, you will probably not be a good programmer in the end.
I don't want to offend anyone, but those are my observations from when I attended university. A lot of people who aced the classes still couldn't engineer a decent program to save their lives, and I talked to teachers who felt the same way.
Passion, curiosity and a genuine interest will get you further than the best teachers and books. That being said, a combination of all of them is probably to best way to go.
|
On November 19 2008 04:16 MasterZilla wrote:
I guess programming classes can be a good support if you are just starting out, but if you don't do a lot of experimenting and learning outside of those classes, you will probably not be a good programmer in the end.
I don't want to offend anyone, but those are my observations from when I attended university. A lot of people who aced the classes still couldn't engineer a decent program to save their lives, and I talked to teachers who felt the same way.
Passion, curiosity and a genuine interest will get you further than the best teachers and books. That being said, a combination of all of them is probably to best way to go.
Fully agree with that. I don't consider myself as the best of the programmers, but seeing others getting a degree in computer science although they barely know how to program with classes is just weird.
|
United States47024 Posts
On November 19 2008 04:41 Moaf_ wrote: Fully agree with that. I don't consider myself as the best of the programmers, but seeing others getting a degree in computer science although they barely know how to program with classes is just weird.
Computer science and software engineering are two different things. Related, but different.
|
You may as well start with C++ instead of Java if ultimately you want to learn C++ =P Contrary to popular belief, a knowledge of C is not all that necessary at all. All the things in C++ that aren't in Java cuz they looking C-ish are pretty quick and easy to pick up. Plus, www.cprogramming.com has nice tutorials of those areas!
|
I hate C. I started learning from Ritchie's ANSI C and it was awful. Like, really awful. What I did was really obfuscated. ioccc.org, anyone?
I learned Pascal, Delphi, a bit of Prolog and Logo before I picked up C++. It wasn't THAT much harder, and with basics already covered, I could force my way through. http://nehe.gamedev.net was what really kept me interested.
Then, PHP came around, but I mostly scripted/tweaked some minor things, CMS modules etc. for my sites. It's really amazing how it evolved throughout the years.
I picked up some Java doing Robocode. Check it out, it's SUUUPER time-wasting though.
Finally, C#. Say what you want about M$, but Visual Studio Express is a really nice gift from them Knowing Delphi and C++ made the transition quite smooth.
|
For me, Java was really easy to learn on my own and i think it's easier than most other languages I've learned besides python (ml, scheme, ruby, haskell)
python is really easy to pick up too, i wish i had learned it in high school
|
Ill start with you guy! =] I want to start as well, have wanted to for a long time but never knew where to start out
|
I honestly think Pascal is the best language for picking up the fundamentals. Go into C# after that and then into C++ I wouldn't start out with C++, you'll have enough to learn already without having to deal with memory management at the same time.
|
I just wanted to clear some confusion:
C is not an easy programming language to start with. So I wouldn't recommend it and besides, it's not OOP so it wouldn't be so easy to afterwards switch language as it would be if you had studied Java/C++/C#, etc. instead.
C is one of the most powerful language but as many people said depends on what your aiming for. And since I guess you're not aiming for super-efficent low level software (drivers, linux modules, etc.), you shouldn't go for C because it will be a pain in the ass to develop some high level soft (games, desktop and web apps, etc.) with it, trust me.
|
I would actually recommend learning Perl. It's a powerful language that isn't all that difficult to learn compared to Java and C++. Also there's an excellent resource that I've used myself at: http://www.youtube.com/user/bermnz
|
On November 19 2008 05:16 TheYango wrote: Computer science and software engineering are two different things. Related, but different. I was in fact talking about software engineering, sry for that
|
United States17042 Posts
Since you're in college, start with whatever they want you to start with (in an introduction to programming class)
Every language has it's own quirks, and allows you to do different things.
Personally, I think that you should learn C- I'm a double E, and you need C because it's a very powerful low level language if you know what you're doing.
|
On November 19 2008 08:53 kemoryan wrote: I just wanted to clear some confusion:
C is not an easy programming language to start with. So I wouldn't recommend it and besides, it's not OOP so it wouldn't be so easy to afterwards switch language as it would be if you had studied Java/C++/C#, etc. instead.
C is one of the most powerful language but as many people said depends on what your aiming for. And since I guess you're not aiming for super-efficent low level software (drivers, linux modules, etc.), you shouldn't go for C because it will be a pain in the ass to develop some high level soft (games, desktop and web apps, etc.) with it, trust me.
Exactly. I also think that C/C++ actually scares away many people who might be interested in programming. Because it's just so complicated and you have to do lots of stuff you probably don't want to do all the time (my favorite is all that very-low-level memory management *cough*) unless you use good libs which have code to handle all that for you but that's not shown in any beginner's guide and if you want to learn the language you need to be able to know how to deal with it anyway, so... It's the fastest language (not counting ASM) and the low-level nature gives you the power to do basically anything, which can be a great thing in some areas (e.g. very hardware-close programming), but it's a serious blow to your efficiency when writing "normal" software (you'll be much more productive and fast when writing code in a higher language which allows you to get more done with less code). So if you want to concentrate at the task at hand, use a higher level language.
I recommend: - Python for starting out. It's an open source cross-platform language, easy to install/use on Windows (unlike Ruby or Perl). Very consistent language, very easy to read and write, very powerful. Ruby is another good choice but I won't recommend it because there's less resources/docs/libs etc. available because it's still fairly new and mainly popular in Japan though its popularity is rising due to the Ruby on Rails framework for web applications. Python should also be the language of choice for small programs/"scripts", web apps, and basically almost everything. It's a really great language, and Python 3.0 will be out soon bringing a lot of improvements. - Java for doing any big projects. Java is the most widely-used language these days. If you want tons of job offers, be a Java programmer. Don't believe the old sayings that Java is slow - it isn't anymore. It's not very high level, but it's also not C++ - it strikes a good balance between speed and usability. A "medium level" language, so to speak.
Oh, and do learn OOP early on. I know that some good programmers say that learning OOP is "unnecessary" and you should focus on procedural programming first, but OOP is really great once you have learned to "think in objects", and you'll be confronted with it all the time when dealing with code by others (libraries in particular) or when using higher level languages which are purely object-oriented. OOP allows you to write really clean and neat code - but only use it when it makes sense. Don't learn OOP at first, but also don't delay it until very late.
|
Deciding which programming language to use (or learn for that matter) is always a question of what you want to do. Clear that up and we'll be able to really help you.
I personally am heavy in love with C++ it just so beautiful. But it's rather rarely getting used in the industry.
|
Learning programming is easy than what most people realize. If you have at least a good fundamental understanding of math then you shouldn't find it hard. But to become a good programmer takes years of work. There will be times when you just want to throw up your hand and say fuck it. Key is proactiveness. You don't learn programming by going to class and do your assignments. You learn by do things on your own .
|
1. Programming isn't just learning a language. It's about solving problems. So read a good book about algorithms and data structures. And learn to abstract.
2. (Especially) your first language should be clean and neither complicated nor too complex. I can't believe people actually recommend c++ as first language.
3. If you're dedicated enough (and you should be!), learn languages that have different concepts (procedural, object oriented, functional etc.). That will teach you a lot.
(and everything deadbeef said.)
|
Just to re-emphasize one thing that people have said already:
Data structures. Extremely important.
|
guys, how can i decide on something when i barely have ANY knowledge on what anything is? o.o
|
Start with something like VB.NET and try to learn the concepts. Writing data structures / algorithms do not take the same amount of time as in say C/C++. (Not just VB, have a look around, there are plenty of things to try.) The idea that everyone trying to convey is:
choice of language do not matter. just start somewhere and work your way up. have a solid understanding of concept. practice, practice, practice.
The rest are up to the gods.
|
If you really need to start somewhere. There are plenty of books / text available one line. You don't really need to buy books or attend class. You do need time and discipline tho.
If you need tools then common compilers / IDEs are available either free or in a form that you can use with out paying money.
Did you know that most Linux text from O'Reily can be obtained from their website freely in pdf form? (They have some sort of GPL like license for their text).
or you can search torrents for books ~_~
|
|
|
|