|
But I do not know where to start. I've asked a friend, and he gave me a couple of e-books.
One involved python, another with C++. However he told me that I should study, know Java or Javascript (I forgot) if I want to start programming. So he told me to get either BlueJ or Textpad while learning Javascript. He also gave me the basic tutorial on www.java.sun.com but is it true that I need to know a little bit of HTML before I actually start JAVA? A search on google recommends or already assume that I know HTML....
Anyways, there MUST be some programmers out there. I have a two questions:
1. How should I start off? Java? Then go on to other stuff. 2. What are the recommended books? (I am learning this by myself btw)
   
|
MrHoon
10183 Posts
As someone like me, I've never been fond of "dummies guide etc etc" (reading manuals is for noobs blah blah), I like to use videos more than books for tutorial guides. And then when I get a basic Idea I head to books
|
I would recommend you C++ and HTML for beggining if you`re ambitious. If not then PHP + HTML is good too. Java is actually MUCH slower than C++ so it will propably never knock C++ out... so C++ is still more useful. I started learning C++ from various e-books (just use google), And don`t get dissappointed if you can`t get something reading it for the first time. Good luck!
|
He probably meant Java and not Javascript. And I agree, Java is a nice language to start with, since it's object-oriented and there's a lot of things you can do. And you don't have to know html to start with Java, Java is not only for web apps and I don't think you'll start making apps for the web.
So yeah, Java is a good start, its pretty similar to C++ but it's easier to get going if you don't know any C. Python is also a nice programming language for beginners, though that doesn't mean they're not powerful.
Sorry but I can't recommend you any specific book =(
|
United Kingdom4282 Posts
Learning programming is usually quite boring unless there's something to motivate you. Like you're making games or useful applications. Well that's my opinion anyway, some people are fine spending hours learning syntax and algorithms.
I have only used html, python and delphi so I can't really give any advice on java. I really like python though.
|
So C++ is better to start off with? I'm confused D:
|
It`s a bit harder but more useful imo. EDIT: And 99.9% of operating systems and games is made in C++
|
I would not recommend to start with C++. Well, Python is easier. But IMO, the norm would be to start with Java or C.
HTML and Javascript are different things and are for the internets. Basic HTML is easy but you shouldn't bother with it until you meet it in your programming journey.
|
I started with C++ as my first language, and while today I am happy I did, it was a quite tough time to get started.
Start off with Java or C/C++ and you will get good at thinking like a programmer. After that you can change language quite easily.
Also, like someone said, don't try to learn programming by only reading books and following the tutorials. Try and make a small game, and put everything you read into that, and take any questions you have and read up on that specifically.
My first game was a small nibbels (snake) type game, it took me 6 moths to complete and tought me a lot about classes and C++.
|
Python is by far the best language for learning how to program from scratch, but C/C++ is still by far the most used language. Java is also good starting language, but it really does so much for you that you'll miss out on a lot of stuff (its design philosophy is kinda weird)
|
So it's basically personal preference on where I want to start.
So if I want to start it easy, I should start on either Java, Python, or C. If I feel like I'm up for the challenge, start with C++!?
|
Not again.. I read "progaming" instead of "programming".
|
On November 18 2008 19:15 clazziquai wrote: So it's basically personal preference on where I want to start.
So if I want to start it easy, I should start on either Java, Python, or C. If I feel like I'm up for the challenge, start with C++!?
It's not a matter of easy or difficult, I sincerely believe that one should start with Java. Java introduces the concept of OOP in a very clear manner and removes all the headaches that even bother the brightest people. Java is a much better starting point.
I would strongly suggest a course (from your institution, or take a night class) than going through a book. Books are extremely boring, and you need superman determination to finish one back-to-back. But I recommend books over e-books, as e-books introduce much more distraction.
When you learn Java, learn it well. After you have the basics down -- mainly polymorphism, try to understand how things really work (i.e. at the memory level). After that, you can start learning C++ if you wish. Pointers and memory management will make much more sense then.
I personally started with C++ due to my high school curriculum, and I think was an extremely bad choice now that I've become more experienced.
|
Java is a bit easier than C++. It has a bit more constraints (to prevent you from messing up) It does some things automatically (handling memory mostly) All in all it is a bit more rigid, you can't optimize what you do to the core but if you are a beginner you won't want to. Also getting memory errors and heritage mess can be very very very annoying in C++.
|
Hm, okay, I will start with Java.
Ultimately, I want to learn C++.
What are the common class names that teach "Java"? or the basics of programming?
|
I also wouldn't recommend C++ as your learning language, there are too many confusing things to learn as a beginner. I've learned programming with Pascal - it's easier to understand because the coding style is more convenient. I recommend you to get to learn how procedural- and object oriented programming works first before moving up to "heavier" languages. Btw... what do you want to program? Maybe it's not even necessary to learn C++... in my opinion Java and especially C# outrank C++ in terms of productivity and accessibility by far.
|
computer language is sooo0o0o0o0 boring. hope you have a good hobby to put it to good use and on your resume (hacking).
|
On November 18 2008 19:51 Moaf_ wrote: Btw... what do you want to program? Maybe it's not even necessary to learn C++... in my opinion Java and especially C# outrank C++ in terms of productivity and accessibility by far.
Actually, yea, I agree with this. With Java (server) and C# (client) becoming ever popular, C++ might not be necessary for you to learn (unless you want to develop games or IPhone apps).
However, imo, C++ to Programming is like Latin/Greek to Languages (of the Western world). It is very useful, and it will expand your horizons.
As for classes, afaik, there aren't any "java" classes (maybe in community college). Most classes, especially introductory classes, will introduce the fundamentals of computer science via a computer language, and that is largely based on the lecturer's discretion, though Java is much more often chosen than C++ for reasons mentioned above. Ask the registrar's office for details.
|
On November 18 2008 19:47 clazziquai wrote: Hm, okay, I will start with Java.
Ultimately, I want to learn C++.
What are the common class names that teach "Java"? or the basics of programming?
If you are in a University, try CS1XX. I have no idea with regards to night classes. Probably something like "Introduction to Programming".
|
When I was starting out I found the biggest help to just be messing around with other peoples codes. Tutorials like: do this => then do this => I always found to suck because I always found they didn't really explain how to adapt it to different situations.
|
In any case, learning on your own is EXTREMELY hard. Classes -> Internship is the way to go.
|
Zurich15345 Posts
On November 18 2008 18:31 azndsh wrote: Python is by far the best language for learning how to program from scratch, but C/C++ is still by far the most used language. Java is also good starting language, but it really does so much for you that you'll miss out on a lot of stuff (its design philosophy is kinda weird) 100% agree on the Python part. If you really start from scratch, start with Python. It will give you the basics and the transitioning to Java or C++ will be much easier.
Java is by far the most used language today. There is billions of lines of Java rotting in in-house corporate software. If you want to work as a software developer Java is probably the way to go.
|
On November 18 2008 21:06 zatic wrote:Show nested quote +On November 18 2008 18:31 azndsh wrote: Python is by far the best language for learning how to program from scratch, but C/C++ is still by far the most used language. Java is also good starting language, but it really does so much for you that you'll miss out on a lot of stuff (its design philosophy is kinda weird) 100% agree on the Python part. If you really start from scratch, start with Python. It will give you the basics and the transitioning to Java or C++ will be much easier. Java is by far the most used language today. There is billions of lines of Java rotting in in-house corporate software. If you want to work as a software developer Java is probably the way to go.
Yup; now the question no one asked. What is it that you want to program? Depending on what you want to program is depending on where you should start.
|
On November 18 2008 20:00 Cambium wrote: [...] C++ might not be necessary for you to learn (unless you want to develop games or IPhone apps).
Well, as always, depends on what you kind of game you want to develop. If you aim to program an 3D engine where every bit counts, c++ and assembler coding is the only way to go. If you want to create non high-performance games, implementing them in C# with managed DirectX results in a product that is running (normally more than) sufficiently fast. For those who are interested, Microsoft developed also XNA (supports only C#) containing a framework that is basically an abstraction layer above DirectX - simplifying the coding of 2D and 3D applications for Windows/XBox games. Of course you lose some control, but it's still possible to dig deep enough into the 3D coding (e.g. using HLSL). As far as i have read, using XNA over managed DirectX results in a performance loss of about 5-15%. But still, it's possible to create games like this.
|
Shockey: Well programming.
Hm. I've always loved computers because of games, music, and what it can do. Therefore I became interested with computers. Now I want to know more about them, and I think it would be pretty cool to make programs, idk just as a hobby or minor (for school) or something
|
Just wondering, how old are you?
|
18 years old, freshman @ college.
|
start with C++. i started with it when i was 13. what they say about it being hard isn't that true :\
|
It really depends on what you want to do. After having decided on something, I'd then recommend thoroughly learning C++, Java or PHP, whatever fits that task best. You can always learn other languages later. It's quite easy to learn the most important basics of another language once you are advanced in one language and understand general programming concepts.
I'd use: C++ for high performance applications Java if platform independence is important, or for applets etc. PHP for web applications
Oh, and HTML is not needed unless you actually want to do HTML stuff.
|
On November 18 2008 22:58 clazziquai wrote: 18 years old, freshman @ college.
Oh that's great news. You still have lots of time (that's when people typically start anyway) and resources!
Good luck, glhfdontgg
|
the most important thing is to have an aim in mind - a project of something you want to create. learning a language is boring otherwise, and you won't care once you've read the basics. forget the courses - find something you want to do and just do that. everything else will gradually follow as you need it for different projects.
|
I first learned C++ then switched to Java, the switch was a breeze to me. Whereas if you switch from java to C++, i bet it'll be a bitch :p.
I recommend Java because it's cleaner, more pure OOP than C++ and it has <interface>, very convenient to manage components. Not to mention the Collections frameworks which i use almost every time to manage array and list.
The first few months going to be boring until you are able to build something good with GUI using Swing or Web-front for the interface. Sorry for the messy sentence.
So as starter, a motivating book like..
Head First Java (http://www.amazon.com/Head-First-Java-Kathy-Sierra/dp/0596009208)
..would be really good to follow. It's a really really good book, I wish I'd read it when i first started programming. + Show Spoiler +it's recommended to buy the book but I know a place to get the e-book online for free, pm me if u want it
|
Some decent books for starters...
Head First Java Thinking in Java (free online) Java in a Nutshell (more of a reference book) Hardcore Java (more advanced)
|
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. Even then, I've seen a lot of coursemates fall throughout the years.
Therefore small warning/disclaimer for OP: DOING THIS IS NOT GOING TO BE EASY
Good luck.
|
On November 19 2008 00:28 Elvin_vn wrote:I first learned C++ then switched to Java, the switch was a breeze to me. Whereas if you switch from java to C++, i bet it'll be a bitch :p. I recommend Java because it's cleaner, more pure OOP than C++ and it has <interface>, very convenient to manage components. Not to mention the Collections frameworks which i use almost every time to manage array and list. The first few months going to be boring until you are able to build something good with GUI using Swing or Web-front for the interface. Sorry for the messy sentence. So as starter, a motivating book like.. Head First Java ( http://www.amazon.com/Head-First-Java-Kathy-Sierra/dp/0596009208) ..would be really good to follow. It's a really really good book, I wish I'd read it when i first started programming. + Show Spoiler +it's recommended to buy the book but I know a place to get the e-book online for free, pm me if u want it
just want to say I thought that book sucked
I much preferred o'reilly's java in a nutshell which is HUGE and a bit dense, but imo much better to learn from
headstart only gives specific examples, and its basically: here, you retype this. and it doesnt explain a lot of java....I just really really did not like it at all.
that said, check out both books if you can before you buy them (they can be pretty expensive) and in general O'reilly tends to have the best books. You can really get burned by other books, they either wont cover enough, be too dense to read or things like that
|
Programming is a terrific enabler, and makes you smarter. You will not be disappointed!
I'm a programmer; just finished my CS degree this past year. I agree with everything Cambium said.
The only thing I might suggest is that you learn regular old "procedural" rather than "object oriented" programming to begin with (you can use Java for either; I strongly recommend Java). That's because procedural programs generally read very easily, top to bottom. Object-oriented programming is an art form and should be approached when the apparent limitations of procedural programming motivate you to do so.
Start writing simple procedural Java programs (loops, variables, function calls). You will become comfortable with Java's syntax and be ready to tackle objects and their glorious complexities (type hierarchies, polymorphism, design patterns).
edit: The difficulty in learning programming is that "beginner" programs tend to be very contrived/boring. Like, a classic beginner program is writing a simple math calculator. I think the tutorials on the Sun site are pretty good, though.
|
On November 19 2008 01:13 Aerox wrote:Show nested quote +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. Even then, I've seen a lot of coursemates fall throughout the years. Therefore small warning/disclaimer for OP: DOING THIS IS NOT GOING TO BE EASY Good luck.
oh yeah
my compsci introductory course (which is basic programming, pretty much what you would take as an option) started with 25-30 people, ended with 5-8 and only 1 person completed the last assignment.
So I mean its not like impossibly hard, but you have to be pretty dedicated, and make sure to abuse your teacher and ask questions wherever possible. Programming is a course that really really rewards prior experience, so the more you can study now before you go into a course (even just syntax) will help.
Dont be intimitaded, but take advantage of every single opportunity you can get
|
On November 19 2008 01:20 fusionsdf wrote:Show nested quote +On November 19 2008 01:13 Aerox wrote: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. Even then, I've seen a lot of coursemates fall throughout the years. Therefore small warning/disclaimer for OP: DOING THIS IS NOT GOING TO BE EASY Good luck. oh yeah my compsci introductory course (which is basic programming, pretty much what you would take as an option) started with 25-30 people, ended with 5-8 and only 1 person completed the last assignment. So I mean its not like impossibly hard, but you have to be pretty dedicated, and make sure to abuse your teacher and ask questions wherever possible. Programming is a course that really really rewards prior experience, so the more you can study now before you go into a course (even just syntax) will help. Dont be intimitaded, but take advantage of every single opportunity you can get Haha so true. In my Data Structures class on the first day, the professor said, "Look to your left. Look to your right. At the end of this class, only one of you will remain." It started with about 100 people, ended with about 15-20.
|
I think programming books suck and you end up only copying their sample code and using it as a reference. You want to learn to program, you just need to program. Make programs that you want to make. IMO it is best you get a lot of things down without having to worry about how it looks, so you should be making programs with simple text output only.
As long as it's not a useless language I say do whatever one helps you program the most--whatever one will make you practice/play the most is the best one for you. I don't think C or C++ is necessarily too difficult for your first language. But since you don't even know HTML just learning HTML and Javascript and playing with that could help you start thinking like a programmer, which is really the part that needs to be learned--it just takes practice. Honestly just making some decent javascript stuff would be a great start, and if you can't do any HTML, do that first, too.
It's more about being able to just attack a problem, and do it well. Once you acquire this skill in one language you are fine and you can just look up things and code in other languages (of course you have to learn the technical complications and professional standards eventually too if you want to be a good programmer). And my point is, even if you just try to make random shit in HTML and javascript for the next two years (assuming you've done neither before) you probably will still not have "it" very well--that programming skill just takes time.
|
United States47024 Posts
On November 18 2008 21:06 zatic wrote:Show nested quote +On November 18 2008 18:31 azndsh wrote: Python is by far the best language for learning how to program from scratch, but C/C++ is still by far the most used language. Java is also good starting language, but it really does so much for you that you'll miss out on a lot of stuff (its design philosophy is kinda weird) 100% agree on the Python part. If you really start from scratch, start with Python. It will give you the basics and the transitioning to Java or C++ will be much easier. Java is by far the most used language today. There is billions of lines of Java rotting in in-house corporate software. If you want to work as a software developer Java is probably the way to go.
I actually disagree with Python being the best language to learn from scratch. Sure, its easy to learn, but it cuts corners on some rules, such as formal type declarations. Not necessarily a bad thing, but it can be a little frustrating to move to another language (like C++ or Java) that's stricter about rules. IMO its much easier to learn a system thats strict on rules and transition to a loose one than vice versa.
|
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 ~_~
|
Melbourne5338 Posts
I would definitely recommend starting on a project after learning some basics, and learning stuff as you need it. More fun too when you program a game/util and can show it off to all your friends.
|
On November 19 2008 21:45 clazziquai wrote: guys, how can i decide on something when i barely have ANY knowledge on what anything is? o.o
the basics of programming will be similar across languages. You will find if statements, for loops, arrays in pretty much every language, and it looks like thats what you need to learn. So get a reference book, install java and play around. You can also look online at tutorials, but they generally wont be great.
|
On November 19 2008 19:10 garista wrote: 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.)
wow. word.
|
On November 19 2008 21:45 clazziquai wrote: guys, how can i decide on something when i barely have ANY knowledge on what anything is? o.o
OK, put the following programming languages into a bucket
C/C++ Java Pascal C# VB .NET ASM
and draw. if you get ASM, then i suggest you re-draw  Or you could just eenie meenie miney mo it ;\
|
People that keep saying Java is slow don't know anything about this language. Slow Java comes from bad design and bad programming (specially applets and Swing apps since you have to be very careful with Threads). Server side Java is very fast and efficient. I have worked in several production environments where Java (J2EE) was scaling incredibly well (something like ~1000 users per server.). And guess what, it was not the JVM being the bottleneck for the number of users, it was the Database and other external services used by the Main App.
|
By the way, for deep understanding of OOP I would go for Scheme. Yes Scheme! although not used professionally, it teaches a lot about all aspects of OOP. If you want a low level language, go for C. C++ is a broken language :p
|
lol all of u are trying to confuse the kid
learn Java (not javascript, they are two completely different things)
|
If you choose to start out with Java, which is a very good choice, get the book "Thinking in Java" (by Bruce Eckel, Prentice Hall). Only an old edition is available free for download though. That book is long and thorough and will also teach you quite a bit about programming techniques, background knowledge, common mistakes etc. etc... it could be a bit too complicated for the beginner though, because it is assumed that you have basic knowledge already, but who knows. Enough dedication can overcome initial understanding problems. :p In any case it's an amazing book.
If you choose to start out with Python, which is an even better choice, get the book "Learning Python" (by Mark Lutz + David Ascher, O'Reilly). This is a short book, tutorial-style... but really good quality (like all O'Reilly books).
|
Oh there's also this funny tutorial: http://pine.fm/LearnToProgram/?Chapter=01 It's a Ruby tutorial for (stupid? :D ) total beginners. It's kinda cute... if you want a dead simple tutorial your grandma could start out with, this is it. Don't expect a lot of info though.
|
Physician
United States4146 Posts
|
|
On November 21 2008 04:32 FreeZEternal wrote: People that keep saying Java is slow don't know anything about this language. Slow Java comes from bad design and bad programming (specially applets and Swing apps since you have to be very careful with Threads). Server side Java is very fast and efficient. I have worked in several production environments where Java (J2EE) was scaling incredibly well (something like ~1000 users per server.). And guess what, it was not the JVM being the bottleneck for the number of users, it was the Database and other external services used by the Main App.
Yeah. Unfortunately though, myths or obsolete truths are very widespread in the IT realm and live on for a long time. "Java is slow" is one of them. "Windows is unstable" is another one (which obviously came from the 9x era).
|
I once wrote a blog post that gives many reasons why Python should be the first language of an aspiring programmer. I won't repeat all that stuff, but the gist is: it's a simple language that will allow you to start writing practical scripts and programs in a short amount of time, with a minimum of headaches. Also, in my opinion the truly separating line between a code monkey and a good programmer is a knowledge of data structures and algorithms. Once you are comfortable with a language and the fundamentals of programming, if you are serious about learning to program, an algorithm book such as CLRS should definitely be in your to do list.
I want to address points made by some people here:
I would recommend you C++ and HTML for beggining if you`re ambitious. If not then PHP + HTML is good too. Java is actually MUCH slower than C++ so it will propably never knock C++ out... so C++ is still more useful. I started learning C++ from various e-books (just use google), And don`t get dissappointed if you can`t get something reading it for the first time. Good luck!
HTML is not a programming language, it's a markup language, a language used to format content. It's exactly like using Microsoft Word, except that instead of click a bold icon, you type the code in directly. C++ is a bad first language, because it is extremely complex and most beginners get completely lost with it. PHP is not bad to start with, however it is an extremely bad and retarded language that has no design. It will teach you bad habits. Java is not bad, but it's extremely verbose and boring and making complex things is way too complicated with it. As for its speed, it seems this user is unaware of recent improvements in Hotspot, or else he'd know that once started, a properly written Java program can match the speed of C++ in many cases (though not all.)
Learning programming is usually quite boring unless there's something to motivate you. Like you're making games or useful applications. Well that's my opinion anyway, some people are fine spending hours learning syntax and algorithms.
Heed this gentleman's warning: if you find yourself being totally bored, you probably shouldn't pursue the matter any further.
So C++ is better to start off with? I'm confused D:
No, it is definitely not better to start off with, because it will confuse you 
It`s a bit harder but more useful imo. EDIT: And 99.9% of operating systems and games is made in C++
It's a lot harder and not really more useful except in a few select cases. As for operating systems, C++ is actually not that popular, C is a definite leader in this area. C++ is king for large games; a language like Python would allow you to write simpler 2D games much more easily.
Python is by far the best language for learning how to program from scratch, but C/C++ is still by far the most used language. Java is also good starting language, but it really does so much for you that you'll miss out on a lot of stuff (its design philosophy is kinda weird)
Python actually does a lot more for the programmer than Java does, and it needs to be understood that it is not a bad thing. You can always come back later to C to learn about topics such as memory management, pointers, and other lower level topics that are not part of Python (or Java). Learning C once you have a solid grasp of fundamental programming concepts is a lot easier than if you're trying to understand the design as well as understanding why a while loop does what it does.
Ultimately, I want to learn C++.
Why?
In any case, learning on your own is EXTREMELY hard. Classes -> Internship is the way to go.
It depends on the person. The classes I had in college were absolutely worthless. There is usually a point when things start to "click". Maybe a good class can bring about this moment sooner, but it's definitely possible to attain it on your own.
Yup; now the question no one asked. What is it that you want to program? Depending on what you want to program is depending on where you should start.
Knowing what one wants to do is definitely important in the selection of tools. But this should come after a proper knowledge of programming has been reached. A person may want to win the 100m dash, but before they do, they should probably learn to stand on two feet 
I actually disagree with Python being the best language to learn from scratch. Sure, its easy to learn, but it cuts corners on some rules, such as formal type declarations. Not necessarily a bad thing, but it can be a little frustrating to move to another language (like C++ or Java) that's stricter about rules. IMO its much easier to learn a system thats strict on rules and transition to a loose one than vice versa.
I disagree with your disagreement. Python is a terrific enabler, it allows a beginner programmer to quickly produce code to do practical things, to solve some of his own problems. Yeah, it's a bit looser than other languages, but that doesn't mean other languages can't be learned. If we went with strictness first, everybody would start coding in Haskell.
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
For the simple scripting tasks, Perl is not too hard to learn (although remembering default parameters for the built-in functions is a bitch.) However, once you get into more advanced topics, Perl shows some rot.
I agree with what 0xDEADBEEF and garista said.
I wish you the best of luck in your endeavour, for some people (myself included), programming is really fun, I hope you enjoy it.
|
|
|
|