Tag: Programming

Learning a programming language is not so easy

Learning a programming language is not so easy

Never stop learning
Image by Gerd Altmann from Pixabay

When I started, back in the dark ages there weren’t many programming languages about. It was a choice of BASIC, Fortran, C, Pascal and Cobol or some obscure languages apl, lisp, snobol etc. At Uni I learnt BASIC in first year then Pascal. We touched on Cobol in one course, enough to put me off it for life. We also did one semester on assembly language for a 6800 CPU. That was fun and probably helped me to learn 6502 and Z80 a few years later.,

Back then once I started learning other languages, it was long before the web existed. Programming languages came with manuals – user guides, reference guides. So you could learn enough to get started and then dip into the reference guide as and when you needed.

But since the Web appeared, the manuals no longer exist as printed books. But what I’ve noticed is, it gets harder to acquire a new technology if you are not working in it fulltime. I learnt PHP and HTML twenty years ago and reinforced that learning by creating websites. But now technologies like Blazor and ASP.NET MVC are quite a bit more complicated.  I’m doing  Udemy course on Blazor with over 200 lessons (most about 5 minutes long) and have only got up to lesson 55. Finding the time is probably one of the hardest things.

C is probably one of the easiest programming languages to learn but any other language or complicated technology is going to take a lot longer. I think It should be easier. There is an immense amount of free material on the web including sites to pose questions (StackOverflow), low cost courses (Udemy), free videos (Youtube) and yet it doesn’t seem easier.  Back pre-web you had to pay for programming languages. But unless you are a student or have a lot of spare time to study, it can be slow learning new stuff.

 

My different programming style from before

My different programming style from before

Software
Image by Gerd Altmann from Pixabay

Next year I will have been developing software as a job for 40 years. I graduated in mid 1981 and three months later started my first job in October 1981. To say that things have changed enormously would be an understatement. Back then there was no internet so information was limited to three sources: Books, magazines and what you learnt yourself.

Along the way I have used commercially a large number of programming languages: BASIC (8k Basic on Apple II and ACT Sirius- a precursor to the IBM PC), CBasic on Dec Rainbow, Z80 assembler for home computers (MSX, Zx Spectrum and Amstrad CPC 464), 6502 for CBM Vic-20 and CBM-64 (and also one project for the rarely heard of CBM-16) then Turbo Pascal on CP/M and MsDos machines, Turbo C++, Ada, Delphi (4,5,7,9 and XE7) , SQL, HTML, PHP, CSS,Java, C and C# (with Xamarin for mobile). As well as the ebook (C) I’m working on two side projects (C#and MonoGame).

Back in the day pre-internet when I wanted to do graphics, I had to figure them out myself. Things like Turbo Pascal came with thick manuals that you more or less learnt, To draw rectangles on the CBM-64 in hires mode. I figured out how to draw them and finished a game in 6 weeks. Recently I’ve been doing the same using MonoGame for mobile game development. I did a quick search of Google, found a library in SourceForge or GitHub, downloaded it and fitted it in. No big manuals to learn, just knowing how to find stuff on the web, make sure the licence allows its use and I can understand its source code enough to use it.

Intellisense also helps. No more knowing that such and such a function has three parameters, you just type in the name and it shows the parameters and their types. Is it more productive than before the web? I think so but there’s also more distractions.

Do I miss those days when things were a lot simpler? A little but I know I’d miss being able to find things with Google, on StackOverflow, even in Wikipedia etc.  Things can be a lot more complicated but I think I’m way more productive.

Learn C Games

Learn C Games

Learn C Games Programming Book coverThis blog is about C and Games programming (in C mainly) and now C# on mobile with MonoGame. It’s written by David Bolton, author of the Learn C Games Programming for beginners EBook. This is the Windows version, with a Raspberry Pi/Linux one due out isometime n 2021.  

The first 20 chapters introduce and teach C programming with many examples. This link is to an .mp4 of the asteroids game from the book. It’s about 90 seconds long and demonstrates all of the features of the game. High score table, rotating asteroids (four sizes), sound, explosions, ship hyper-jump and shields.

The remaining 30 chapters builds up to full source code, about 2,000 lines, in 13 stages and I explain how each feature works and is implemented.  All of the book’s source code is on GithubMore about me. Buy it on Amazon(UK), Amazon(US).