View Full Version : How do I get started?
Antares
05-07-2008, 10:03 AM
Yes, this thread was inspired by another thread. I've decided to learn programming, but I have no idea where to start. The only thing that I've done that was even close was DHTML, which I relinquished a couple of years ago and have completely lost my touch. I've distanced myself from Web Design and want to start in a brand new direction. Any tutorials available? And also, reflecting the question of another member, which language should I start with?
knock7
05-07-2008, 10:39 AM
Yes, this thread was inspired by another thread. I've decided to learn programming, but I have no idea where to start. The only thing that I've done that was even close was DHTML, which I relinquished a couple of years ago and have completely lost my touch. I've distanced myself from Web Design and want to start in a brand new direction. Any tutorials available? And also, reflecting the question of another member, which language should I start with?
What operating system are you going to program on?
What operating systems do you want your programs to run on?
Are you doing this for a specific purpose or a career choice?
Tenacious B
05-07-2008, 02:20 PM
With any language there are textbooks you can buy that will teach you how to use the language.
Here are some books for learning C:
To view links or images in this forum your post count must be 2 or greater. You currently have 0 posts.
HackerX
05-07-2008, 07:41 PM
DHTML? Go Java/C#.
The jump from Javascript to Java is much bigger than then name suggests. But a good grasp of the latter with vastly improve the former.
Antares
05-08-2008, 04:23 AM
What operating system are you going to program on?
Windows XP
What operating systems do you want your programs to run on?
Windows XP
Are you doing this for a specific purpose or a career choice?
No, although I may consider it. Leaning towards the scientific field at the moment.
melon
05-08-2008, 05:11 AM
While I probably don't have as much programming experience as some of the other posters, I would recommend starting out with either Python or Ruby. They're both fairly easy to grasp compared to other languages and fun (for me at least) to program in. My first recommendation would be Python, as it's pretty popular at the moment, but most of the Python tutorials I've found online have been, in my opinion, either boring or a bit too advanced for a first-time programmer. Ruby, while a bit less popular than Python, has plenty of nice online tutorials for beginners. Here are some resources:
Wikipedia articles: Python (To view links or images in this forum your post count must be 2 or greater. You currently have 0 posts.(programming_language)), Ruby (To view links or images in this forum your post count must be 2 or greater. You currently have 0 posts.(programming_language))
If you choose Python, a good place to start would be the official beginner's guide (To view links or images in this forum your post count must be 2 or greater. You currently have 0 posts.) at python.org, which links to several suitable tutorials for first-time programmers. If, instead, you choose the Ruby route, you can check Ruby's official documentation page (To view links or images in this forum your post count must be 2 or greater. You currently have 0 posts.) for a nice list of links (similar to the one on python.org). This tutorial (To view links or images in this forum your post count must be 2 or greater. You currently have 0 posts.), in particular, would be an excellent place to start. This (To view links or images in this forum your post count must be 2 or greater. You currently have 0 posts.) is another excellent (and hilarious) Ruby tutorial, and I haven't found anything like it for other languages. I'm not sure if it's up-to-date though.
Have fun! Programming involves a large amount of problem-solving and abstract thinking, and is a nice brain exercise. One thing I would advise is to not have high expectations of what you think you can create. It could take a year of programming before you're able to create a GUI (graphical user intorface, as opposed to command line) program; programming takes large amounts of patience.
Antares
05-09-2008, 07:49 AM
Haha. Thanks for the recommendations. I'll look at python.
rokxal
05-17-2008, 05:49 PM
Ruby and Python are good scripting languages but I would recommend learning C/C++ as its widely used and a good gateway to other commercial languages, eg. Java/C# maybe. If you really want web languages, try maybe php, cgi/perlscript but if you're after "programming", C/C++ is the way to go. Apologies to old-school Fortran lovers and new age javaness peeps.
rahdam
05-18-2008, 05:25 AM
I concur with those who have said C/C++.
It's a strong language, and the knowledge is highly adaptable to many other languages.
I started on Visual BASIC before I moved to Visual C++, but i will never go back.
AgentofGaming
05-18-2008, 03:14 PM
Quoting my professor "If you know C++ picking up other languages will only take a couple of days since it's a matter of learning the syntax"
Of course in C++ the pointers and dynamic memory management does indeed get a bit more messier. Segmentation fault anyone?
However when you understand memory management it'll get you a better understanding of how programs interface with hardware.
C++ may not be the easiest but as said above you can build a good foundation from learning it.
Arcani
05-18-2008, 03:31 PM
I concur with those who have said C/C++.
It's a strong language, and the knowledge is highly adaptable to many other languages.
I started on Visual BASIC before I moved to Visual C++, but i will never go back.
I also started with Visual BASIC and moved on from there. VB was good for learning the basic thought process behind programming, but once you have that down C/C++ are much more functional.
Java is more fun to program than C++, but if you're looking for a solid language with a lot of the bugs ironed out or you want more functionality (especially with GUI's) go with C++. Also I agree with what's been said before, once you know C it's just a matter of learning the syntax and you can program in just about any language.
HackerX
05-18-2008, 07:54 PM
I would say go with Java/C# over C++. Ultimately, C++ is where you want to be, but if you're just programming for fun, learn a language that will hold your hand a little bit. Better to learn more about programing in general, and put off learning the bad habits of C/C++ , than jump straight into it
melon
05-18-2008, 08:11 PM
I started learning programming when I was 14 by picking up a ~1500 page book on C++. Looking back, I wish I would have started with something a bit more simple (especially considering my age back then). Pointers, references, multiple inheritance, etc. started to overwhelm me, as I was teaching this to myself and didn't have a teacher. This caused me to take a break (6-9 months) from programming, and now I've recently started teaching myself python. It's far easier for me to grasp than C++ was back then, but this could be due to me being older now. Of course, some younger people will be able to grasp C++ far better than I did, especially if they are very self-motivated and find quality resources to learn from.
While C++ is definitely necessary if you intend to get a career in programming, I would disagree that it's a great first language to learn (especially if you're just wanting to program as a hobby). Needless to say, it will be impossible to get every programmer to come to a consensus about what is the "perfect first language," and many flame wars have erupted over this subject. It really depends on your learning style and what you intend to program.
knock7
05-20-2008, 11:10 AM
What operating system are you going to program on?
Windows XP
What operating systems do you want your programs to run on?
Windows XP
Are you doing this for a specific purpose or a career choice?
No, although I may consider it. Leaning towards the scientific field at the moment.
If you are only using XP and don't plan to make a career of it, I would go with Visual Basic (i think learner addition). Visual Basic is easy to program in and MS has a good starter package.
If you are only using XP and don't plan to make a career of it, I would go with Visual Basic (i think learner addition). Visual Basic is easy to program in and MS has a good starter package.
I agree with Knock. VB.NET is a great place to start out -- especially if you have access to the Visual Studio. The assistance provided by the studio coupled with the ability to rapidly design/develop forms via the GUI editor should provide a good place to start. Especially since you're targeting the Microsoft platforms.
tp6626
05-20-2008, 05:44 PM
I've worked only with C a few years ago and nowadays VB, although only in Office / Access. However I'm only a design engineer and use it mainly just to automate tedious office tasks and databases that I don't see as being efficient enough. VB seems good enough for me for that use.
Out of interest, does anyone have any (realistic) starter projects that they think would be a good challenge (and fun) for Antares to be working on in the early stages? Goalposts / milestones are usually a pretty good thing!
Mogura
05-21-2008, 06:18 AM
With any language there are textbooks you can buy that will teach you how to use the language.
Here are some books for learning C:
To view links or images in this forum your post count must be 2 or greater. You currently have 0 posts.
Has anyone used the C++ Without Fear text? How was it?
Harjanaz
05-29-2008, 07:28 AM
I don’t have any programming background either but I’m giving it a shot. I’m learning python, I tried using the online guides for a bit but decided to just buy a book which I’ve learned a lot more from.
Monte314
06-07-2008, 08:41 PM
I'd go with HackerX on this one. Two years ago I would have said Visual Basic and C++, but things are shifting.
If you think you want to do scientific work, and want to maximize your marketability, you need to have some application skills (C# is where a lot of work is heading right now), and you need some web/IP skill (Java is where a lot of things are heading right now).
Oberon
06-22-2008, 03:29 AM
this is the website that i used to begin my web development adventures. To view links or images in this forum your post count must be 2 or greater. You currently have 0 posts. Its free and informative and pretty much a basic overview. Hope it helps.
MATLAB, Python + SciPy and Fortran 95 are synonymous with scientific computing. But it is best to start with fundamental principles of numerical computing, like floating-point precision, accuracy, dealing with and minimizing propagation of error, etc. Throw in vectorization and distributed computing for fun. These concepts are language agnostic and absolutely essential unless you plan to restrict your activities to that of a code-monkey. Actually even code-monkeys should know these things :-P
LurkerSpeaks
06-24-2008, 04:16 AM
You could always learn Scheme just to be different...
Otherwise, I would start with C, then learn C++ or Java or C#
As for projects: There is always something I wish notepad could do that makes programing my own entertaining and fun. Also, the fact that the calc that comes with Windows doesn't allow you to cut and paste the numbers really pisses me off so, if that also turns out to be a pet peeve (or psychotic fucking hatred as in my case...) then a calculator is also a good project, getting more advanced as you add more advanced functions.
You could always learn Scheme just to be different...
Otherwise, I would start with C, then learn C++ or Java or C#
As for projects: There is always something I wish notepad could do that makes programing my own entertaining and fun. Also, the fact that the calc that comes with Windows doesn't allow you to cut and paste the numbers really pisses me off so, if that also turns out to be a pet peeve (or psychotic fucking hatred as in my case...) then a calculator is also a good project, getting more advanced as you add more advanced functions.
This is not directed specifically at you, but I am confused by people recommending C & C++ as introductory languages. C is barely passable, and C++ is a bloody monstrosity. Both languages are non-orthogonal in many regards. Mastering C++ would take well over a year. Moreover, the only applications for these two languages as of 2008 are system-level programming and (rarely) scientific computing. Most desktop application development is moving toward C# (Windows), Python (Linux) and Objective-C (OS X).
Don't limit yourself to Notepad. There are more text editors out there than there are grains of sand at any beach. Vim, Emacs and SciTE are my personal favourites. The learning curve for the first two can be quite steep but they will be unparalleled in terms of productivity when you get the hang of it.
I tend to use the Python toplevel as a calculator, but here (To view links or images in this forum your post count must be 2 or greater. You currently have 0 posts.) is something you might find useful.
solmonus
06-24-2008, 04:01 PM
Moreover, the only applications for these two languages as of 2008 are system-level programming and (rarely) scientific computing.
A few desktop open source actively developed C++ Applications:
-Firefox (and other Mozzilla apps, such as thunderbird)
-Filezilla
-MySQL
-Open Office
Granted the new "Cool" languages are C#, Java, and Python (and Ruby). The massive number of applications and systems that are written in C & C++ will not be going away for a long time (to see a large list google search "C++ applications" and pick the first link "research.att.com..." ).
I have been programming for over 10 years now and if I could go back I would start with C.
I will be teaching my children C (they'll be programming age in a few years).
If you want to be a great windows developer you'll want to know C. The windows API is in C and the C# .NET Framework (partially), C++ Microsoft Foundation Class Library, and Borland's Visual Component Library (Delphi, C++) are layers over the Windows API.
C++ is not a good beginner language, but it is the best language if you want to be able to program anything (and to truly master C++ one must master C).
solomonus, I'm well aware of the size of existing C/C++ codebase. 3 out of 4 projects you mentioned were started by the OSS community, which for better or worse clings to C/C++ even when far superior alternatives are available. I'm not sure about FileZilla, but I think the project was started when the .NET framework was very young.
Today, the overwhelming majority of brand-new desktop applications are not written in C/C++ (at least on Windows & OS X; the Linux community suffers from the aforementioned problem). Java & C# dominate server-side development. I am not very familiar with the Microsoft development ecosystem, but I get the impression from MSDN articles that C# is promoted as the One True Language for .NET.
Incidentally I was introduced to programming through C++. I later went on to learn C and was an overzealous fanboy of the two languages for a few years. This changed when I started picking up OCaml, Haskell and Python. I still think C++ is the most versatile language out there, but it is far from the most productive or even the most "fun".
In conclusion, C/C++ will not disappear for a long time, but solely due to momentum. It would cost too much to rewrite existing applications from scratch.
Saint
06-25-2008, 07:32 PM
Speaking as a Computer Science student and software developer who has used far too many languages (argument from authority!), I'm not so certain that learning C/C++ is a good choice for a first language.
The learning curve for C is kind of like a frozen wall of acid.
The newer interpreted languages are much gentler approach to programming and much less scary to look at (no pointers!). I'd suggest looking at Python/Ruby/C#/Java, but it really depends on what kind of programs you'd like to start with.
dtecmeister
06-26-2008, 01:32 AM
You need to decide what's important for you to stay motivated and what language makes the most sense for your goals.
If you want nice quick functionality, PureBasic is a great start. On the other hand there are some who say BASIC forever ruins you from being a great computer scientist.
If you want to think like a computer scientist, start with one of the LISP variants, then learn how assemblers work. After you have a good handle on that, move to Python, then learn how interpreters and virtual machines work. If you're still into building your base after all that, study up on operating system theory, assembly, then classic and new language feature implementations. By that time you should be able to decide what to focus on in more depth. It sounds like a lot, but there's a leap between a coder and a computer scientist that isn't easily traversed.
kedelfor
07-28-2008, 04:40 PM
I honestly think that C would be the best first language. It is a simple language to learn and all concepts you learn will be useful in later languages. I started with higher level language and think that I would have been better off learning a more simple language.
With the higher level languages you learn things to do that can be specific for that language, and sometimes you become dependent on a specific function or library that you can not find else where.
I would recommend To view links or images in this forum your post count must be 2 or greater. You currently have 0 posts.
It is the defacto standard for the C language. The book is a little dry, but the concepts and skills you learn using that book is easily transferable to other languages.
Most people say to start with a higher level language and learn backwards. I disagree and think the best way to learn is from the bottom and work your way up. You will be a better programmer because of it.
With what ever language you choose I would try one that is type casted and follows some rules of how you should structure the program. The free form languages to me are great tools for rapid development, but can turn into really nasty code later.
K
vBulletin® v3.7.1, Copyright ©2000-2009, Jelsoft Enterprises Ltd.