Sunday, 19 June 2016

Books, Websites & Apps For Aspiring Coders

Books, Websites & Apps For Aspiring Coders

If you’re trying to get into programming and need a hand, there’s plenty of help available if you know where to look

Programming is seen as a very highly specialised job and, to some degree, that’s perfectly accurate. To become a professional coder, you’re required to take on board a huge amount of knowledge. You’re not only learning one or multiple new languages, but also logic, design, planning and much more. It’s a complex and varied role, and depending on your sphere of expertise, be it web development, productivity and business applications or games, you’ll have to learn totally different  skills. There’s no such role as a simple programmer in truth, and jobs vary wildly in skill and experience, and budding coders often need to pick an area to focus on, often learning even more skills throughout their career, but what’s the best way to begin down this road?


For many, a perfect start lies on their own PC and in their own home, learning the basics and getting a foothold using their own means. Obviously, professional education is by far the best, so attending higher education is always going to be ideal for most, but you don’t have to rely solely on this to get started, and for some, there’s no need to do so at all, thanks to the internet and other helpful media.

Available online and off, you can find all sorts of learning aids and books that can help any would-be programmer get started. And with a PC connected to the internet, there’s very little you can’t learn in the comfort of your own home, regardless of the language you choose to focus on.

This week, we’ll be looking at these options and we’ll cover the home education you can use if you want to teach yourself how to code or simply need some extra instructions to go along with your school work.

What Language?


Your starting point for any programming journey is going to be picking which language you’re going to learn, and this is a question that could take a long time to answer. Many factors will govern the language you pick, including the kinds of program you want to work on, the platform you wish to develop for and the industry you wish to get into. There are so many languages and natural crossovers that it’s likely you’ll end up learning many different languages. Few programmers learn only one language ,and although many will specialise in one or maybe two, most will have decent experience of many, including languages that may lie outside of their chosen field.

Software developers will usually have experience of developing websites, and even game developers will routinely know languages like SQL. Some are simply common knowledge for those involved in coding, not only because it broadens people’s skills, but it also helps when looking for jobs, as there are rarely postings for coders that don’t involve desired skills that include multiple languages.

There are, of course, staple languages you’ll want to learn for certain roles. Database admins, for example, will always need to know SQL, as it’s the most common data-handling language used in business. Languages like Visual Basic, Delphi, C#, Java and HTML5 are just a few people use for developing mobile apps and other applications. Arguably the most flexible and desired language, especially for large-scale projects, powerful applications and games is C++. This is seen by many as the ultimate language to master and it can open many doors for the budding coder looking for that dream job.

Of course, all languages are flexible enough to be used in many ways, and C++ isn’t the be all and end all. Other languages can be used to program games, for example, and there are many more data-handling languages than SQL. Companies will often have their own preferred set of languages they use for development, which is why it’s a good idea to be flexible and learn more than one.

Home Schooling


As we’ve said, there’s really no substitute for further education or professional courses when it comes to learning programming languages, but it’s nonetheless something you can learn yourself at home. Thanks to the internet, there are many ways to do this, and you can also find a lot of useful books on the subject.

There are countless books available, both electronic or paper, that can teach you various programming languages, and they range from total beginner tutorials to reference materials for experienced users who simply need the odd refresher or two. No matter how good you are at programming, you’ll always need to look up information from time to time – ask any veteran coder.

One of the best book ranges for newcomers does itself a bit of a disservice with its title and that’s the Dummies range. These books are often overlooked due to their apparent disdain for the reader. No one likes to be called stupid, after all. Their look also makes them appear less than professional, and many believe they’re simply not all that effective. Now, there are a lot of books in this well known series, and we can’t comment on them all, but when it comes to programming, it can be a very good range to go for if you want to get started.

The Dummies range covers a wide collection of languages, and it does so with an easy to understand manner that eases users into the subject. It’s littered with practical explanations and activities, and contrary to the titles, they’re very good at hand holding a newcomer through those early steps.

If you’re looking for more in-depth titles, you’ll find no shortage of them around, all specialising in different languages and uses. There are far too many languages and books to cover here, of course, but here are just a few you can find, some of them totally free online.

Java is a very popular language for many reasons, and Bruce Eckel’s Thinking in Java is a great free e-book that’ll teach you the ins and outs of it. You can download this from www.mindview.net/Books/TIJ. The third edition is the free volume you’ll want, and it’s very in-depth and informative, with awardwinning advice contained within.

Python is another popular language, and it’s particularly common as a first-time language for newcomers. It’s a great choice for learning the basics of coding, making it an entry-level option. As it’s still a new language to learn, however, it can be challenging without the right guidance. Enter A Byte of Python by Swaroop CH. This book is aimed at total beginners, not only in terms of coding but computers in general, and it’s a good read if you want to get your feet wet with this reptilian code. You can find this e-book at python.swaroopch.com.

We’ve already mentioned that C++ is one of the most powerful and desired languages around, as well as it being one of the most difficult to master, so learning it is no doubt going to appeal. A good place to start here is Richard L Halterman’s Fundamentals of C++ Programming. This is a free e-book that covers the basics of C++. It teaches you all you need to know to get a foothold in C++, and it does so in a way that requires no prior knowledge of programming at all. Even readers with no knowledge of coding at all can make use of this book.

A good accompaniment to this would be Kjell Bäckman’s Structured Programming with C++. As well as teaching C++ coding techniques, which it does well, this book is written to help you think more in terms of programming language and more like a programmer. This is a skill that can be hard to master, as you have to think differently in terms of how things are planned and executed. This book helps with that, and like the Halterman’s book, it’s also free. The two books are available from various locations online and are just a search away.

119 SQL Code Smells may have a strange title, but it’s a great book that can help you learn SQL, as well as functioning as a great reference – something any SQL developer will agree is always useful. With contributions from SQL Server pros, it’s made up of, unsurprisingly, 119 ‘smells’, which are basically common SQL problems that people have encountered. This book will tell you how to deal with them. Although it’s not an SQL tutorial book per se, SQL is a funny language that’s easy to read and understand but hard to master, so this is a valuable aid. You can grab it from bit.ly/1zrZyvr.

Because SQL is a very common language desired by many employers, you may be looking to learn the basics in order to give yourself an advantage, and for this, you could read A Primer on SQL by Rahul Batra. This has been written to teach users the basics of SQL and requires no prior knowledge of SQL or coding. You can grab this from leanpub.com/aprimeronsql/read.

Of course, one of the most important languages any self-respecting coder needs to know or at least have passing experience of is HTML. Still a building block of the internet and a very important skill, HTML is handy for just about anyone getting into the IT industry in whatever capacity. Sams Teach Yourself HTML in 24 Hours is, therefore, a very good read. As the title suggests, this book should teach you the basics of HTML in a day, to the point you’ll be able to code and upload a fully working basic web page. It’s basic, sure, but it’s free and does a very good job of getting you started. You can read it at bit.ly/1XvFoh1.

Online Academy


Reading books is always going to be a great way to learn new skills, but we also have the internet to help, and it offers an almost never-ending supply of outlets for the acquisition of knowledge, especially when it comes to programming. Unlike books, the internet gives you the chance to interact in such capacities as completing activities, answering questions and even taking exams. The array of practical tests makes getting used to coding much easier, and the instant feedback you can get means you’ll always know how well you’re doing.

One of the most famous internet sites for this is www.w3schools.com. This site has a large selection of tutorials and references for the just about any core web programming language you could ever want to learn, including HTML and CSS, PHP, SQL, ASP, Java and XML. There’s in-depth instruction and learning texts, as well as all sorts of practical activities that’ll get you coding in no time. It starts with the basics and leads you through more advanced topics, all designed with the user in mind.

Another popular site is Code Academy (www.codecademy.com). Focusing on interactive learning, this site requires a registration, but once you do, you’ll have access to some very well written and executed tutorials for languages like HTML, SQL, Java, PHP, Python. Ruby and more. There’s a collection of testimonials from people who managed to find new careers in programming thanks to the site, so it’s worth a look.

Code School (www.codeschool.com) features a library of programming tutorials including the basics like HTML, Java, SQL and so on, as well as other sections based on other useful skills like iOS. The site uses a lot of video instruction followed by practical activities, and it can track your progress as you learn, even awarding you course badges. It’s aimed at bestowing foundation-level skills in languages, so you can use this as a stepping stone to more specialised knowledge, and it does this well.

Another very popular and well-known teaching site is www.lynda.com. This service isn’t free, and it does require a fee, but there’s a free trial for you to try, to see if you like what it offers. The site offers some of the best online tuition around for a large range of skills including all the usual core languages, as well as directed courses on topics like Android and iOS development, the increasingly popular game development tool Unity and much more. It’s a very professional site and one that has a lot of past success to back it up, which warrants the cost of its use. It’s certainly well worth giving the free trial a go.

Learn Online


We’ve looked at various online learning resources, but as well as being a great place to find tutorials, the internet can be so much more in terms of learning how to program. It can be the perfect first step too.

Coding websites using the myriad of languages can be a very easy and cost-free method of getting started. Learning languages like HTML, Java, Flash and so on can teach you valuable skills, and the tools that you need to do so are often free. Many browsers come with built-in developer tools, and dedicated software is freely available and is just a quick search away. It’s easy to get your work online, and in no time you can have an active website and can even earn money from your craft quickly.

EasyPHP (www.easyphp.org) is a free tool for developing PHP projects. PHP is a popular website language and some prefer it over alternatives. This development suite lives up to its name, and it makes developing PHP projects easy, and it combines PHP, MySQL and Apache into a single suite. The whole thing can even run from a USB stick, and it supports add-on modules for Drupal, Joomla, phpBB and WordPress support.

If you want to get to grips with the most basic online language, HTML, then you really should look at CoffeeCup HTML Editor (www.coffeecup.com). This is a free HTML editor that has a familiar interface and is very easy to use. As well as being a great tool for beginners, it has plenty of high-end tools for more advanced users, so it’ll grow with you as you learn.

Learning Apps


The internet does a good job of teaching and even gives some valuable hands-on coding experience via tutorials and examples. However, to really get your head around coding, you’ll need proper, practical experience. For this you need an actual application. There are many available, and studios for various programming languages can be downloaded from various sources. Here are a few.

Android Studio (bit.ly/27YwRIt) is a free development package for – you guessed it – Android applications. As we mentioned before, programming applications for mobile platforms like mobile phones can be a great place to start, as the languages are often more friendly for new programmers, and it’s far easier to get your work published and made available. This studio is a great tool for learning, because it’s an all-in-one toolset with an intelligent code editor that features autocomplete – always a great feature for learning. It includes an emulator, so you can run your programs in a virtual Android environment, and it’s easy to compile and export your work. Because it’s Android, you can also develop for multiple types of platform. There’s a template function too, so you can start from preset code snippets, which is another reason it’s a good place to start.

Apple’s Swift programming language replaced the need to learn objective-C and resulted in a more user friendly language to develop OS X and iOS applications. To get your start with it, you need to download Apple’s Xcode suite (developer.apple.com/xcode/download). This gives you everything you need to code Apple-based apps and includes the Xcode IDE, Swift 2 compiler, platform emulation and SDKs for OS X, iOS, tvOS and even WatchOS. It has everything you need to develop apps and, like the Android studio, it’s a great option to begin with, because you won’t have to be concerned with platform differences, OS versions and the other hazards that come from other languages.

Of course, you may want to get started with languages that a lot of companies look for when employing for open positions, and this can often mean Microsoft skills. Visual Basic, .Net, SQL and so on are all desirable skills employers look for, so getting experience with them is definitely advantageous. You should certainly have a look at Microsoft’s free Visual Studio Community (bit.ly/1BOHNbo). This is a free development studio that includes a huge amount of flexibility, and it also includes the tools needed to develop for Windows phones. There’s a superb coding interface, intelligent editing, full debugging tools, web integration and much more. There’s support for multiple languages too, including C#, C++, Visual Basic, F#, JavaScript, TypeScript, Python, SQL and others. It’s powerful, and for some it may actually be a little too much, but if you’re looking for a free and great place to start mainstream coding, this is a perfect choice, just make sure you have plenty of learning materials to go along with it.

It Takes Time


There are clearly more tools and plenty of available help available for those wishing to learn how to program, more so than there’s ever been, thanks to the internet, but there’s one skill no one can really teach and that’s patience. If you decide to get started in programming, even the best books, apps or tutorials will be useless unless you have the patience to take it all in. Learning programming is difficult and it takes a lot of time, trial and error and importantly, a lot of mistakes. You need to be willing to put in a lot of time and effort to get to grips with any language, even the most basic, and you’ll run into a lot of problems, errors and failures along the way, even with good learning material. It’s all about attention to detail and the ability to read and reread your code to worm out the smallest typo, code mistake or broken loop. With time, it’ll all fall into place, and the various methods of tutelage we’ve listed here will be of great help.