The online racing simulator
Programming
(55 posts, started )
#1 - sam93
Programming
I want to learn to program as when I reach 16 what is in 1 and a half years I will be going to college so I can become a software and web developer. So I was wondering if people could give me some good tips and some good sites what I can use to learn.

No one say the good old hello world app because i have already done that.

Sam.

P.S I know there are a load of these type of threads but I find it easier then looking through others for links and tips
Quote from sam93 :P.S I know there are a load of these type of threads but I find it easier then looking through others for links and tips

Part of being a programmer is having the patience to sit and read or discover how a protocol or how to use an API. Things are not always handed on a plate.

To be honest, once you know the basics - if, else, while, for, +, -, =, etc. you've got the knowledge for most languages in existance to date. The rest is simply learning the nuances of the language (i.e. then and end, vs braces), and then all you've got is the standard API.

The standard API is the core part of each and every language. What you can and cannot acheive by using the default functions. Unfortunately this isn't something you can give tips on until you pick a language to use.

So.. Choosing a language. That's always fun. In short pick what you consider to be the best tool for the job.

If you're new to programming then I suggest something memory managed, ideally something interpreted (not compiled), as it's easier to get to grips with. Once you feel that you can acheive your goals in that language, then move onto the next.

As for projects, pick something that you enjoy, not something you feel you need to do.

If you're into web programming, then you might want to try creating a basic blog or forum. This is a relatively simple selection of code to write, should encourage good practise, whilst giving you good knowledge of a language. Once you're done there move onto the next project.

I would not recommend an (In|Out)Sim or Outgauge client as your first significant project.
#3 - sam93
Quote from the_angry_angel :Part of being a programmer is having the patience to sit and read or discover how a protocol or how to use an API. Things are not always handed on a plate.

To be honest, once you know the basics - if, else, while, for, +, -, =, etc. you've got the knowledge for most languages in existance to date. The rest is simply learning the nuances of the language (i.e. then and end, vs braces), and then all you've got is the standard API.

The standard API is the core part of each and every language. What you can and cannot acheive by using the default functions. Unfortunately this isn't something you can give tips on until you pick a language to use.

So.. Choosing a language. That's always fun. In short pick what you consider to be the best tool for the job.

If you're new to programming then I suggest something memory managed, ideally something interpreted (not compiled), as it's easier to get to grips with. Once you feel that you can acheive your goals in that language, then move onto the next.

As for projects, pick something that you enjoy, not something you feel you need to do.

If you're into web programming, then you might want to try creating a basic blog or forum. This is a relatively simple selection of code to write, should encourage good practise, whilst giving you good knowledge of a language. Once you're done there move onto the next project.

I would not recommend an (In|Out)Sim or Outgauge client as your first significant project.

Cheers, I was thinking of PHP or C/C#/C++ or JAVA but don't know what one to choice. I think starting a project of a forum will be a good idea and a good challenge, but wouldn't it require alot of coding and time but saying that programming isn't a 5 minute process takes alot of time to do from coding the program and fixing the bugs and errors. So could anyone give me some good sites I could use so I can learn and start my forum project? I know it doesn't get handed to you on a plate but I would love to start somewhere and why not now so I have some knowledge of programming. When it comes to computers I am very willing to learn and I would learn because it is on a pc lol.

So any help would be great.

Sam.
Quote from sam93 :Cheers, I was thinking of PHP or C/C#/C++ or JAVA but don't know what one to choice.

For web-based stuff, I'd recommend PHP for a newbie.

As for C, C# and C++, you need to know that these are all relatively different languages. C and C++ are more closely related, but there are still a number of significant differences in what should be considered C and C++. C and C++ are also not memory managed, which means you need to understand how memory works, pointers and so on. If you're learning to program these are not the easiest things to pick up.

C# should be considered closer to Java, in terms of syntax and because it uses a JIT (Just In Time) compiler.

I personally believe that Java isn't relevant these days for web development.

Any of the .NET languages (including c#) can be used on the web, but thet require running the .NET framework to be running, which effectively means exclusively running on a Windows platform (you could run it under mono, but I honestly wouldn't consider this to be production ready for web apps for the moment).

Quote from sam93 :So could anyone give me some good sites I could use so I can learn and start my forum project?

w3schools.com
php.net
devzone.zend.com/tutorials

Finding existing projects and picking them apart can also be a good starting point.
#5 - sam93
Quote from the_angry_angel :For web-based stuff, I'd recommend PHP for a newbie.

As for C, C# and C++, you need to know that these are all relatively different languages. C and C++ are more closely related, but there are still a number of significant differences in what should be considered C and C++. C and C++ are also not memory managed, which means you need to understand how memory works, pointers and so on. If you're learning to program these are not the easiest things to pick up.

C# should be considered closer to Java, in terms of syntax and because it uses a JIT (Just In Time) compiler.

I personally believe that Java isn't relevant these days for web development.

Any of the .NET languages (including c#) can be used on the web, but thet require running the .NET framework to be running, which effectively means exclusively running on a Windows platform (you could run it under mono, but I honestly wouldn't consider this to be production ready for web apps for the moment).


w3schools.com
php.net
devzone.zend.com/tutorials

Finding existing projects and picking them apart can also be a good starting point.

Cheers for the help mate. I did start a web browser but I the pc it was on the HDD reformated, I am sort of glad I didn't finish it because I wouln't like to us it because of security settings.

Well I will read up on some information and get some code snippets and put them altogether and see what I come up with.

Sam.

Edit: Should I use notepad or would Visual Studio be ok to use?
Hi welcome to programing, heres a site ive been using ive found it to describe lots about C#, ive only just began my programing, ( 4 weeks now) and i started out with C++ found it not as easy as C# so i changed now, im also not that great at doing all this still learning, ive found learning from my mistakes shows me the places i have to watch, ive only made a few simple apps atm one is a pictureviewer which is easy now i know how it works.

http://www.functionx.com/csharp/index.htm

idd also suggest getting a text book to write some stuff down on cause u will always sit there and be looking back at what you have leanrt in the past, its also good to do some scribble on to.

anyways good luck
Quote from sam93 :Should I use notepad or would Visual Studio be ok to use?

Never use notepad. If you are going to write something in just a text editor, use something a little more sophisticated than notepad, such as SciTE. There are other similar alternatives about though.

How many languages does Visual Studio cover these days? I only have the VB module installed and can't be bothered to fish out the installer disks. On the whole it seems a solid product to me but then I've tried little else.
Quote from Bob Smith :
How many languages does Visual Studio cover these days? I only have the VB module installed and can't be bothered to fish out the installer disks. On the whole it seems a solid product to me but then I've tried little else.

it uses C#, C++, VB and J# from what i see on my 2005 version
i think thats it i know the new 2008 is in beta stage was going to try it out but its too big for my isp
Quote from Bob Smith :Never use notepad. If you are going to write something in just a text editor, use something a little more sophisticated than notepad, such as SciTE. There are other similar alternatives about though.

**must resist classic argument** Vim you heretic, always Vim!!!!!

Honestly sam you're discussing the difference between a text editor and an IDE there. Fundamentally notepad is just a text editor, whereas Visual Studio is so much more. Whether you prefer to go down the toolchain (i.e. a text editor and a compiler) or an integrated solution (an IDE), is again up to you. IDEs do tend to make life a hell of a lot easier though as you can just mash a button and it does X, Y or Z for you. Now truely evil heretics will tell you that emacs is able to do that as well. But you should ignore them. For they are the dark ones. The evil ones. You must laminate evil.
#11 - SamH
Use all the tools at your disposal. People rip the micky out of me for using DW to develop websites in, but the truth of the matter is that when time is YOUR money and you're quoting on jobs, you need to take advantage of anything that will assist you. Craning for hours over plain text is just stupid when a code checker will highlight an error instantly.. and the less time you spend fixing your errant typos, the more time you can commit to generating something extra special.
Quote from racemania :Hi welcome to programing, heres a site ive been using ive found it to describe lots about C#, ive only just began my programing, ( 4 weeks now) and i started out with C++ found it not as easy as C# so i changed now, im also not that great at doing all this still learning, ive found learning from my mistakes shows me the places i have to watch, ive only made a few simple apps atm one is a pictureviewer which is easy now i know how it works.

http://www.functionx.com/csharp/index.htm

idd also suggest getting a text book to write some stuff down on cause u will always sit there and be looking back at what you have leanrt in the past, its also good to do some scribble on to.

anyways good luck

I'd recommend MSDN for the best place to start with Visual C#, especially the video tutorials, which are really nice and easy to follow.
Quote from DarkTimes :I'd recommend MSDN for the best place to start with Visual C#, especially the video tutorials, which are really nice and easy to follow.

yer i was looking for those vids but couldnt find them thanks for posting them.
#14 - Woz
This is the IDE that the Mono IDE was forked from. A good cheap (free) way in to C#. Unless you work in what some call an "enterprise" style of design this should have all you need.

http://www.icsharpcode.net/OpenSource/SD/
Visual C# 2005 Express Edition is free to of course.
ohhh i got the professional version didnt know there was a free one
#17 - col
A good IDE can make a big difference.

example:

Most good programmers know how important choosing good names for variables and object instances is.
If you get it wrong, then later in the project, you either have to spend time and effort going through the codebase updating all the instances to a new more suitable name.... or just leave a bad name in there that causes ambiguity and uncertainty for maintainers (yourself in a few weeks )
To avoid this trouble you can spend quite a while stressing about the naming process.

Eclipse (at least the latest Java version anyway) has some excellent refactoring tools - renaming a variable throughout the codebase is very simple and quick - just a few clicks and type the new name !

These kinds of tools don't just save time, they can change the way you program.
Well, intellisense, syntax-highlighting, code completion, refactoring, class browsers, built in documentation tools, project management, version control, one-click compiling... I could go on, but these are some of the reasons I code with an IDE and not with Notepad.

That being said, there is a great Notepad replacement called Notepad++ which is worth checking out.
If you're going into a language with a large framework and wordy syntax (read, C#, Java, many modern OO languages), I highly recommend using an IDE. Otherwise you'll spend more time looking up object names, methods and methodsignatures and correcting spelling than programming.

The Visual Studio Express series is a good place to start. Full visual studio offers more, but not to the extend that the cost is worth it until you can write-off the expense.

Java and python (and depending on who you talk to, ruby) have great Eclipse environments. Although I have friends that swear NetBeans is now better than Eclipse again (at least for ruby).

Terse syntax languages (perl, php, ruby, etc.) don't need an IDE, but syntax highlighting is always a good thing. I personally like to stick to emacs there. I was pleasantly surprised by JEdit as well, but obviously not pleasantly enough to give up my old emacs habits.
What program would be best to use to build a forum? I was thinking of using DreamWeaver because trhat lets you write using PHP.

Sam.
#21 - SamH
For a forum, you're likely to need MySQL or a similar database, and you'll need PHP. Dreamweaver wouldn't be a bad place to start, or Zend. Either's good.
Quote from SamH :For a forum, you're likely to need MySQL or a similar database, and you'll need PHP. Dreamweaver wouldn't be a bad place to start, or Zend. Either's good.

Ok cheers
Well that's going to be problem #1. If you expect to learn to do something, as fairly complex as computer programming (which in and of itself is not that complex next to say chemical engineering, medicine, etc.), and you aren't able/willing/etc. to do the legwork required to figure out where to look for information, or how to look for information, then it will cause you no limit to the amount of frustration.

So step one is really to learn how to learn.

Step two would be to learn the basics of programming design and not attempt to code up applications without knowing what you may or may not be doing. The reason a lot of software(especially the hobby stuff, but also commercial stuff too) sucks? Because things are hacked together and not thought through with good design philosophies employed. Lack of understanding about data structures, design patterns, etc. generally lead to poor execution, poor performance, issues with maintainability, etc.

Step three is to do a lot of problem solving. Outside of just the general basics of how to structure a program (which has nothing to do with languages or IDEs, etc.), programming is pretty much like everything else thats remotely scientific... it's about problem solving. Sure its grammar is less rigorous than say mathematical formulas, but if you can excel at geometry proofs or problem solving with algebra or calculus (I realize at 15 and change you wouldn't have been exposed to calculus yet, but the other two you should be), then you should have no problems with solving problems via programming.

The 8 queens or the traveling salesman problems are classic problems to be solved. If you can solve those, programmatically, while employing good design, use of data structures, and design practices you'll know you are on a track in your learning of "how to develop software".

No one ever was successful at learning by delegating responsibility

Quote from sam93 :P.S I know there are a load of these type of threads but I find it easier then looking through others for links and tips

Quote from the_angry_angel :ideally something interpreted (not compiled), as it's easier to get to grips with.

*cough* Python *cough*
Before I went to uni in 2003 to do Computing Science I'd only done standard grade computing and I had literally no programming skills. In uni I studied Java for 3 years, C for about 6 months and SQL for about a year. Now I've gone from knowing practically nothing to a Software Developer job using Java and SQL. The main thing I'd say with programming is that unless you actively want to learn and improve you probably shouldn't do it. A lot of people will try to learn as little as possible to accomplish a task (setting up a forum, for example). Unless you want to know both how something works AND why it works I don't think you'll get on very well as a programmer. I know a lot more now than I did in 2003 but I realise in the grand scheme of things I don't really know much. I'm constantly looking to improve my existing knowledge and widen my experience.

I would recommend you start off trying to learn Java with Eclipse. I recommend Java because it's a very powerful language, it has good documentation (the Java API is really good) and it's very structured. Once you've learned/mastered the basics in Java you'll be well equipped to move on to something like C#/C++.

Java has a reputation for being slow to execute and a bit cumbersome to develop with, but if you use a modern compiler/VM and you've never programmed before you won't notice any lack of speed. Java is used by many large corporations and interbank transfers in the UK are dealt with in Java (80+ million per day).

Programming
(55 posts, started )
FGED GREDG RDFGDR GSFDG