Hi everyone, hopefully some people will see this before the autumn! Basically, I want to learn some coding - and I'm a total beginner, no experience whatsoever, beyond typing in pokes on my old Commodore 64. Glory days. So I'm wondering if anyone can give me some pointers. With such a strong emphasis on coding in the NC, particularly at Secondary school, I want to equip myself with the knowledge to support that in school. I've looked at various forums and Python seems to be quite popular in schools, although I've recently been reading a book on C++ and the structure of it is starting to make sense to me. I think if I did all the practice exercises in the book the bare bones of C++ would begin to fall into place. But really, how can I get myself to a point where I could sit down and code something from scratch? Is it just a matter of reading books and practicing? Will that really give me the skills I'd need?
Also, can anyone in Secondary Ed' clarify if I ought to learn HTML/CSS as well? I'm familiar with the very, very basics (making text bold, that sort of thing), but I couldn't sit down and code a website if my life depended on it. I know there are no shortcuts to knowledge and it's probably hard for people who have been coding for decades to signpost a total beginner, but ANY advice on gaining some skills would be really appreciated!
Python is fairly easy, but I found the errors it gives a bit obscure to understand. My favourite language is c# and you can download Visual Studio express for free of course. This gives you a good development environment and allows you to code windows applications, websites, console apps, services, etc, so a quite wide range of programs.
If your looking for a way to learn web technologies, I started with W3Schools Online Web Tutorials and found it to be a very good starting point, well documented with lots of practical examples. I code websites in my free time and use lots of other programming languages as well just because I enjoyed doing it. It has ended up being a really good experience as I have coded tools that simplified mundane tasks for everyone in the company to just a double click - done task.
Thanks for such swift replies, guys! I didn't realise C# and C++ would be so different. Not sure what I expected, really!
As an analogy, I wanted to learn the piano, so at Christmas I got a full-size keyboard with weighted keys, because I figured that would translate better when I come to play an ACTUAL piano (rather than learning on small keys and having to adjust my fingering etc. on a real piano keyboard). And that's worked...there's a little difference in the actual width of the keys and the weighting, but basically anything I can play at home (which ain't much!) I can play on a proper piano. So I suppose in terms of programming I'm after the same thing. A language I can get reasonably proficient in, and which will give me a foot in the door with other languages if I need to adapt later.
The W3Schools site looks amazing! I will definitely have a poke about on there!
Programming is a slightly different thing to learning languages.
Really most languages are very similar (well, at least in groups, like Object Oriented Languages, or scripting languages, or declarative languages).
Python does a lot of the heavy lifting for you, as is certainly a language I'd consider. But without knowing HOW it does it's work, you wont get the most out of programming you could.
It is far better to be able to code a linked list from scratch than just use a built in. Same goes for sorting.
Java is a great 1st language, as it is properly Object Oriented.
Strange as it is to say it, VB.net is a great place to start too. .net allows you to easily code system level stuff for windows, talk to AD and filesystems really easily; and the syntax of VB is very easy to pick up.
You can get visual studio cheap, (look into Dreamspark licencing for the school, lets you use the Pro versions of Visual Studio for educational use for everyone in the school very cheaply + other benefits)
From there, once you have the hang of datastructures and algorithms, you should be able to pick up any language fairly quickly.
If you fancy more hardware low level tinkering, then Arduino is great fun, and the style goes from a basic style, through c++, and even assemby language depending on how deep you want to go.
I am and always have been interested primarily in the server and management side of IT here, while neglecting the programming, to the point where its something that I have been pretty ignorant of with computing myself over the years and want to improve upon, I am able to edit scripts fairly ok, especially as the LEA have had a VB scripting guy there who is excellent and annotated his scripts superbly I discovered on starting here, so I could understand syntax easily enough when someone else has put something together, but I have never had to sit and come up with much from scratch myself (I had to pick up some basic PERL scripting at one point when working online with a gaming company years back, currently I have had to script some flash removals for a bad update, which was easily done through a batch file on starting a machine up/shutting it down after an hours tinkering around) and I can use things like Powershell without any issues (the ISE) bit can help understand things better there too.
There's a bit of everything there to get you started with whatever you like, plus a load of links to open data sets to perhaps inspire you to write something useful! (I find I learn a lot more when I have an aim in mind, the problem with many tutorials is it can be difficult to see the real world application)