• Tim Buchalka

Essential Software For Programmers

Previously, in this series, we've talked about the hardware you need to be a programmer or to program. But today, I want to go through the software tools that you need and what costs are associated with those tools to become a programmer. So let's talk about that now.


Software development tools, what do you need? But more importantly, perhaps, what do they cost?


Well, before I go into to much more detail, the great news is that most programming languages when you're starting out, you're not going to have to spend any money. And I'll quickly go through some languages, but this advice will apply generally to any programming language.


So let's look at Java and Kotlin, two very popular programming languages. The great news about those is the IDE, the integrated development environment or editor, that's where you type in your code. There's lots of different vendors out there who make the products and pretty much all of them are free.


So, looking at JetBrains, the IntelliJ product. JetBrains is the company, the IntelliJ product comes in a Community edition, which is completely free and that's the one that I recommend most people starting out would use.


They've also got an Ultimate edition. And the Ultimate edition is the one where you have to pay money. But we'll talk more about the advanced or ultimate editions of products a little bit later. There's other products like NetBeans. Another example is Eclipse. So there's lots of different choices there and pretty much all of them, are free in their basic versions.


Now, if you wanted to get into Microsoft products, say C# as one example, Visual Studio by Microsoft is another product that's also got a free edition, I think it's called the Community edition (if memory serves) but there's also advanced editions, they've got a Professional version and an Enterprise versions as well. And it's only once you can enter the Professional or the Enterprise editions that you start having to pay for those. And they're both fully featured and they work with most if not all of Microsoft's languages.


So you can do your .NET development task, C# which I know is part of .NET, but also the embedded C code you're given and also C++ and their other programming language Visual Basic is another one in the .NET platform. So most of those languages work nicely in their integrated development environment, their IDE. And again, there's a paid version and a free version. But, when you're starting out, you certainly don't need to spend any money. That's Microsoft's options.


If you're getting into something like Python, well the great news about Python is there's also free editors there. And another one IntelliJ actually, which I talked about at the start of the video, that's also got a Python module. If you've got IntelliJ already installed, it's free, you can download the plug-in into IntelliJ and that gives you Python support and you can do all your Python programming in there. That's also cross-platform as well, which is fantastic.


I'd suggest you look at that, IntelliJ again is great for that. But there's also a dedicated product called PyCharm. PyCharm is really just IntelliJ but optimised for Python. And in actual fact, it's the same as if you downloaded and used IntelliJ with the Python plug-in. But some people prefer to buy that. So that's a great option. And other programming languages in general, a great option for you to look at is, again by Microsoft, Visual Studio Code. So this is a different product than Visual Studio. Visual Studio Code is an open-source editor and it works for pretty well, what I'd say all programming languages, but there's so many languages that it supports, it's not funny. It's also cross-platform, Windows, Mac and Linux.


A great place to start. Not the easiest of editors to learn. So if you're starting out as a programmer, I'd probably steer you more towards the other editors I talked about earlier in the video.


But Microsoft made a great editor, their Visual Studio product is fantastic, and it's flowed into Visual Studio Code and again, it's not only cross-platform but it's open-source. And there's contributors, you can contribute yourself if you're a developer. So that product, every month they release a new version on the three platforms, again Windows, Mac and Linux, which is fantastic. So I would suggest that because that supports most programming languages and again is free, you don't need to pay anything there.


What I didn't say with Visual Studio, by the way, their full sort of blown IDE, that has got a Windows version which has been out for probably 20 plus years now. It's been constantly evolved, or it has constantly evolved since then. But also there's a Mac version as well, they haven't got a Linux version to my best of my knowledge at the moment. But I wouldn't be surprised at all if they released that at some point in the future. So the bottom line here is that all the basic tools you need to get started as a programmer are generally free.


That's fantastic because it means you can just concentrate on learning a programming language and not have to cough up, so to speak, too much money or any money. But once you start getting more into, you know, you've been through a few programming courses or you've started a programming job, then it might be time to start looking at paid versions of software. Now obviously if you're working for someone then perhaps they've already got the paid version and you may not have to pay for that yourself. But you might decide to get into some of those ultimate or advanced or professional versions.


The difference between those and the basic versions that I've talked about is they offer specific functionality or a more advanced software. So in the case of IntelliJ for example, they offer the Ultimate edition and that's got advanced tools for things like Java Enterprise edition, so we're starting to work with applications that work with big data sets and so forth and written for enterprise customers. So it's sorta large-ish type code. They've got functionality in there to make things easier for you as a developer when you're doing that specifically.


There could be a stage at some point in the future where you have been through the basics and you're wanting to focus and specialise, then you can start looking at those advanced tools. And likewise, there's lots of different toolkits and lots of other frameworks and so forth that are free, but there's also some that you can actually pay for as well.


Now in the case of IntelliJ, for example, there's a heap of plug-ins. And now most of those plug-ins are free. So if you wanna perform a particular bit of functionality, chances are that someone's written a plug-in for that and you can go to their plug-in, basically there's a plug-in area that you can go to in the software, and you can search for a particular bit of functionality and just load in the plug-in.


So the good thing is that a lot of these IDEs or editors have got that functionality built-in so that you may even if you want to specialise in a specific thing, you may not have to spend any money still. But again, in the case of those advanced ones, you will get to a stage at some point, again in the example I used for IntelliJ was the Java Enterprise edition, if you're using that sort of functionality then chances are you'll need to invest in the Ultimate edition or you'll find that there's only support for a particular bit of functionality in that Ultimate edition because, think about it, these companies who make these editors, Microsoft and JetBrains and so forth, they're actually in it to make money.


They need to make money somehow and I don't begrudge them doing that. The great thing though is that a lot of the free versions will stand you in good stead and you won't have to spend any money. Two other things I want to continue with just to reiterate the free versions that I'm talking about, they aren't trial versions, they are fully featured versions that don't expire, so I'm not suggesting the you need to or you can only use it for 30 days and then that's it, they are fully featured and basically you'll never have to upgrade if you don't want to.


The other thing I didn't talk about but I just wanted to briefly mention, mobile app development as well because there's a couple of options there. We've got for the Android platform, Android Studio is the free software that Google provide. Fantastic for Android app development, is constantly evolving and constant being updated and fixed and coincidentally, under the hood, Android Studio is actually JetBrains' IntelliJ Community edition. So, you would see that if you have been using IntelliJ and switch over to Android Studio, you'll see a lot of similarities and that's because under the hood, the products are basically the same. What Google have done is over the top of that they've added Android functionality specific to the Android platform. So that's also cross-platform, so that'll work on Windows, Mac and Linux. And swinging over to the Apple side of things, we wanna get into iPhone, iPad or even Mac apps, then Apple have got a product Xcode and that will allow you to do that. That's also free. Android Studio is free and so is Xcode.


The downside about Xcode is that it's Mac only. And that's obviously Apple's infrastructure, that's their platform. But it is free so you'll need a Mac generally. Or you can use something called a Hackintosh. But the bottom line here, hopefully now, is you've got a good idea that pretty well all the basic things you need are free. And it's only when you start getting into more advanced things, more advanced functionality, and you've got more experience under your belt that you can consider the need to actually spend money.


I hope that helped. If you've got any questions, feel free to leave a comment and I'll get back to you.

© 2019 Tim Buchalka