There is a plethora of blogs about the top languages to learn, but what about the languages you should NOT learn? You’ll want to avoid these languages like the plague.
I’m going to be calling out three very popular programming languages that I’d advise against you spending your time learning them or taking a position where you’ll have to spend a lot of time using these languages. Just because something’s popular doesn’t necessarily mean you should try it. This is my opinion, yours might differ.
I’ll just to the conclusion: The languages are PHP, Visual Basic, and Objective C.
Now, I know what some of you are saying: “The majority of websites are built with PHP!” or “Visual Basic is very simple for beginners!” Although these statements may be true, that still doesn’t mean we should advocate for them. Let’s talk about why if you’re considering these languages, you should turn around immediately.
Of the three languages listed, PHP is the least terrible. Even so, I believe my advise holds true. Even though I don’t like PHP, I still actively use it.
PHP is one of those languages that is popular by force, not by choice. The most common argument is that the majority of websites are powered by PHP. This is a true statement, but we must also consider the fact that a large percentage of websites are built using a content management system (CMS). These content management systems were built in PHP (WordPress, anybody?). Most people who use WordPress do no coding. WordPress could have been developed in Fortran, for all they care. I’m the perfect example of this. I use WordPress with BlueHost for hosting one of my websites and have tutorials on how to set up a CMS.
PHP requires me to glue things together and do trial and error until I get things to work. After that, I don’t touch it! I will admit that I’ve never used a PHP framework such as Laravel. I’ve heard a lot of good things about Laravel, but I still couldn’t imagine using it knowing that I have to work with PHP. It’d be kind of like having the full package sport version of a Smart car (it’s still a Smart car ?).
In attempts to keep this article fairly simple and to the point, you can read why PHP sucks and get all of the juicy details. In summary:
- PHP is primarily useful for small scale applications. Clearly not designed with scalability in mind.
- Variables are declared and initialized when they are first used
- Arrays were about the only data structure before classes were introduced
- PHP is full of inconsistent naming conventions.
- Type casting is a pain and is a common source of errors.
- PHP uses == and ===, where === compares type and value and should be used most of the time (other languages use == all of the time).
- And many more ?.
Instead of PHP, I’d recommend you learn Python. Here’s a recommended book that will take you through building applications using test driven development in Python. You’ll get experience in building web apps using the Django framework, as well as get exposure to Selenium, jQuery, Git, and Mock. Python is the way to go as it is a more general-purpose language that can be used for not only web development, but game development, machine learning, and more.
2. Visual Basic
I often hear people say that Visual Basic (VB.NET, VBA, or anything similar to Visual Basic) is a great language for beginners. WRONG! They say this because it’s very simple to pick up, but this is at the expense of the developer.
In fact, Visual Basic, VB.NET and VBA (Visual Basic for applications) were three of the most dreaded languages of 2018 (all three in the top five most dreaded). Is there any wonder why I’m suggesting you don’t learn Visual Basic?
Even if Visual Basic was the bomb digity, the fact that there is so much dread around the language will reflect negatively on you. Will it look good on a resume when you’re a master at the worst language in the world? Maybe if they’re trying to migrate to C# and can’t convince any one to do it, but not if the company is looking to make revolutionary software.
The title alone is an acronym that has a negative vibe affecting our software engineering peeing contest. BASIC= beginner’s all-purpose symbolic instruction code. Do you really think it would make sense to be an expert at something designed for beginners?
It may not be entirely justified (as a good developer could build something in any language), but there is a very strong dislike for visual basic. I also know that Visual Basic, being part of the .NET framework, is capable of a lot. Even still, it seems that the only people who like it are the ones who have used it their whole lives. By learning Visual Basic, you could be hurting your reputation.
With the fact that visual basic is designed for beginners, you’re bound to get a bit more hand holding that prevents you from growing your computer science skills, bro. For those of you who know me, I really like to focus on the principles and techniques behind what we do in code, not just what to type. Using Visual Basic might let you build something pretty cool, but once you step out into the world, you’ll be exposed to the elements with little to defend yourself.
One example of something Visual Basic does to help beginners is use = as an equals operator. WHAT?! Every other programming language in the entire existence of the entire world, ever, uses == for equals. Although this single equals may make sense for a beginner, this is a detrimental practice for a multi-language software engineer.
One who is proficient with Visual Basic, once using other languages, is likely to pick up the terrible habit of writing comparisons like so:
This habit is asking for trouble as using the assignment operator (=) inside of an if statement is legal in certain languages and will always evaluate to true.
This non-standard use of = is enough for me to assume there are numerous other beginner friendly issues lurking in Visual Basic that go unnoticed until switching to another language.
Instead of Learning Visual Basic, I’d recommend you learn C#. C# is also part of the .NET framework but has a much stronger reputation being fairly high on the loved and wanted list from the survey mentioned earlier. I’d recommend this book, which will get you up to speed very quickly with hands-on projects. C# was the language I really learned more advanced programming techniques (OOP, generic classes, events, MVC, etc). C# also has pretty strong web development community and was used to build Stack Overflow.
This one may come as a surprise to many as Objective C is a well appreciated language. Objective-C was created by Apple and is used to make iPhone apps. There are honestly no huge red flags when it comes to the language itself. Of course it has it’s issues, as every language does, but it doesn’t seem like anything worth abandoning ship for (unlike PHP and Visual Basic).
As one who hasn’t developed in Objective-C, you’d think I’d stay away from reviewing it, right? WRONG! I’m willing to put in my two sense because I see where the technology stands and I’m willing to drive new learners in the right direction.
The primary reason I advise against learning Objective-C is because of the release of Swift a few years back. Swift is now the recommended language of choice for iPhone development.
Like I said, it’s not so much that Objective-C is the problem. It’s more so that if you’re going to spend your time learning a new language, you might as well learn something that is future-proof. Yes, it’s true that Apple still supports Objective-C and it has a strong community of people who prefer it over Swift, but the reality is that Swift is one of the fastest growing languages, and Objective-C is being adopted less and less. On top of that, the reputation around swift is much more than that of Objective-C.
By spending time learning Objective-C instead of Swift (I said instead, not in parallel), you’re setting yourself up to be working in a legacy shop probably working on code that contributes nothing to your resume. Don’t do it.
If you’re one of the lucky individuals who already knows Objective-C, fear not! You’re not hurting yourself by knowing or using Objective-C, I just highly recommend you spend a few evenings catching up on the Swift craze.
If you’re ready to dive into Swift, I’d recommend you check out The Fundamentals Guide for Beginners which will give you a good paced intro, building your knowledge from the ground up in Swift. Even if you have development experience, it’s nice to get a beginner book so you don’t miss any of the important basics when switching to a new language.
Do you agree? What language do you think people should avoid learning? Please leave a comment.