Talent Development Centre

Tag Archives: programming

All Talent Development Centre posts for Canadian technology contractors relating to programming.

If Programming was an Anime (a bit of humour for your day)

This is some niche humour but if you’re into programming and anime, this video should give you a bit of a chuckle. Joma Tech — a YouTuber who talks about life in Silicon Valley, big tech companies, data science and software engineering — created this popular video of a junior engineer trying to solve a coding problem. The twist: it follows the format and contains the typical elements of an anime show.

Fair warning, we promise no intellectual revelation from this video, just a smile for some and pure confusion for others. Enjoy!

Plan Your Development Training with the 2020 HackerRank Developer Skills Report

Once again, HackerRank surveyed over 116,000 developers and students around the world to understand the professional development trends across the industry and which skills are in the highest demand, with the most pay. The complete details were released in the 2020 HackerRank Developer Skills Report and if you’re a developer or aspiring developer planning out your training and development, this document is pure gold!

When deciding which skills to advance, many developers will start by seeing where there are the most opportunities and which will have the better financial return. It’s no surprise that JavaScript, Python and Java are the top three programming languages sought after by hiring managers. Interestingly, though, a global average of 14% (20% in the Americas) say they are language agnostic. Salary-wise, Perl, Scala and Go are more likely to earn you more money compared to the average developer.

Top Language Skills Around the World - 2020 HackerRank Developer Survey

As far as frameworks go, AngularJS, React and Spring remain the best-known as they have been for the past three year. Notably, Django and Vue.js both rose in popularity this year. But still, it’s Backbone.js and Cocoa that are earning developers more money, followed by Ruby on Rails and Spark.

Top Frameworks Around the World - 2020 HackerRank Developer Survey

Which ever of these skills you decide to improve, there are plenty of ways to get started. HackerRank found that developers use a number of methods to learn new skills, and there are clear preferences based on generation. While still used by few developers, the report points out that Coding Bootcamps are being leveraged, primarily by younger generations, and hiring managers are recognizing them as a means to prepare developers for work.

Learning New Coding Skills - 2020 HackerRank Developer Survey

This is just a small selection of the many stats and facts discovered in the 2020 HackerRank Developer Survey. If you’d like to know more, you can download the complete report here.

Find the Happy Medium to Avoid These Programming Mistakes

Find the Happy Medium to Avoid These Programming Mistakes

Developers know that no matter how diligent and careful you are, when you least expect it, eventually things crash, and you find yourself in recovery mode. Even though every company and individual programmer has a few rules of thumb they follow, the worst can still happen.

Interestingly enough, a recent article in InfoWorld, written by Peter Wayner, points out that sometimes one developer’s “golden rule” is the extreme opposite of another’s. Neither are wrong, but taken too seriously and too far to the extreme, the worst can happen. Wayner demonstrates this theory by explaining the following programming mistakes:

Playing It Fast and Loose vs Overcommitting to Details

Overlooking basics brings out the simplest mistakes that then snowball into bigger bugs. In addition, using one big catch all for all possible exceptions can be a lazy solution that leads to more disaster. With that in mind, paying attention to every details and adding too much code will eventually slow down your application.

Not Simplifying Control vs Delegating Too Much to Frameworks

Not simplifying control over tasks in code can have negative implications. Wayner references one experienced developer who says there should be “One and only one place in the code for each job. If there are two places, odds are someone will change one but not the other. If there are more than two, the odds get even worse that someone will fail to keep them all working in the same way.” On the other side of the coin, relying too much on frameworks can make it difficult to troubleshoot because it’s challenging to find out what’s gone wrong in the code

Trusting the Client vs Not Trusting the Client Enough

Assuming the client device will always do the right thing can open up a number of security holes and vulnerabilities. Vice-versa, adding too much security to prevent any vulnerabilities is sure to slow things down, add clunkiness, and hurt the user experience.

Relying Too Heavily on Magic Boxes vs Reinventing the Wheel

Although extremely helpful, many magic algorithms have subtle weaknesses to them and the only way to truly get past them requires extra learning to truly understand what’s under the hood. You could try creating your own cryptography, but trying to re-invent the wheel won’t be as effective as what experts have already developed.

Closing the Source vs Opening Up the Project

Many developers today will advocate that closing the source on your project discourages innovation and hinders opportunity to uncover and fix bugs. In reality, though, there needs to be an incentive for outside contributors to put in the work and your project may not get any contributions at all. Not to mention there’s more overhead in managing an open-source project, like maintaining documentation.

Following Too Many Trendy Ideas vs Ignoring Too Many Trendy Ideas

Finally, who doesn’t want their project to be at the top of the game and taking advantage of all of the new bells and whistles? As you start implementing those new flashy items, beware that more work and challenges can arise because they’re so fresh. Don’t wait too long, though, because ignoring the trends will leave your code out-of-date and behind the times, which will eventually lead to bigger failures and malfunctions.

In any line of work, whether it be programming, other realms of information technology, or a complete other industry, flexibility is key. While it’s wise to follow best-practices, tunnel vision of those rules can guide you down the wrong path. We recommend reading the original 12 Programming Mistakes to Avoid by Wayner, as it provides extensive details on each of these.

7 Tips for New Programmers to Improve Their Skills

Learning the ins and outs of various codes is challenging enough, and we tip our hat to anybody who has taken the time to become great at writing it. Solving problems and delivering creative solutions to clients takes skill and deserves credit, regardless of your level or experience. Still, there are subtle things beginner programmers do when they write code that make an intermediate or expert programmer cringe, and reveal a true noob.

If you’re starting out your programming career and want to improve your skills, check out this video by Andy Sterkowitz. He explains these 7 tips to help make your code more readable and easier to work with:

  1. Avoid Abbreviating Variables
  2. Limit Function Arguments
  3. Simplify Conditional Expressions
  4. Declare Variables Close to Their Usage
  5. Avoid Unintended Consequences in Functions
  6. Functions Should Do One Thing (avoid long functions)
  7. Stop Writing ZOMBIE CODE

The Best Music to Listen to While Programming

Yesterday, we shared a post about the benefits of listening to music at work, along with some etiquette tips for listening at the office. Whether or not productivity will actually improve varies from person-to-person, but one thing is for certain, music can be great in any profession, including programming. Of course, as yesterday’s article touched on, science has proven that different types of music are better for different jobs.

An article by jaxenter says that instrumental music is best for programming so you don’t get caught up singing along to your favourite Queen song. They also suggest that white noise is a good alternative when you need something in the background.  The article provides some links to ideal programming music, and so does this post by codingSupply. If you don’t feel like clicking through, then look no further than below and hit play on this video from Max Swineberg. It’s a mix with no vocals or complex beats, and has only instrumental ambient electronic music. Probably not the best tune for a wedding dance, but perfect for programming!

People Love Python — Are You Investing in It?

There are many programming languages to learn, and which one you’ll tackle next may depend on your industry, clients or preferred type of work. It’s also a wise choice to learn the languages that are in high demand and most likely to bring more opportunity. Therefore, if you haven’t already, it’s a wise choice to learn Python!

Python has been around for nearly 30 years and, according to a recent Dice report, is showing no signs of slowing in popularity. They reviewed job postings on Indeed to find the most popular languages in 2017 as well as predictions for 2018. While Java, Python and JavaScript topped the list, Python was the only one of the top 3 expected to grow in popularity this year. In fact, Dice predicts Python will see a 12% increase in demand, while the only other language they say will grow is PHP by an expected 7%.

If Dice’s claims don’t convince you that learning Python would be a great investment in your skills, Glassdoor also released an article towards the end of last year encouraging the same thing. In addition to the growing demand, they provide three arguments to learning or improving your Python abilities:

  1. It’s useful to a wide range of employers
  2. Employers like it because its trendy
  3. It appeals to programmers, which appeals to employers

As already noted, even if it’s growing and trendy, Python may not make sense to you depending on where your contracting business is taking you. However, we can guarantee that a new skill or training of some sort will be relevant to you this year. How will you be investing in yourself and your professional development in 2018?

Have You Learned Kotlin Yet?

Are you staying up-to-date on the latest skills? Technology changes are always happening and to remain competitive as an IT professional, especially a programmer, you need to stay on top or you risk falling behind.

Kotlin was recently announced as an official language for Android and this infographic from Programiz proves that it’s growing at outstanding rates with plenty of opportunities for programmers. According to their website, Kotlin is concise, easy-to-use, tool-friendly and, above all, safe. Have you become well-versed in it yet?

Kotlin Infographic

Another Year, Another Stack Overflow Developer Survey

Results of the 2017 Stack Overflow Developer Survey were released in March and, once again, it’s packed with valuable insight (and a few useless fun facts) for anybody in the IT industry, from developers to managers to recruiters.

This year’s survey was completed by over 51,000 developers from around the world, with nearly 14,000 of them residing in North America.  Of all respondents, 72.6% classified themselves as web developers, while desktop applications developers, mobile developers, database administrators, systems administrators, and DevOps specialists also topped the list.

The results produce some interesting revelations about developers around the world, including the make-up as well as their values. For example, while the survey was predominately completed by men (88.6% of respondents), Stack Overflow still concluded that women are most likely to take on roles such as Data Scientist, Mobile & Web Developer, Quality Assurance or Graphic Designer. In addition, not all developers consider formal education to be important. In fact, a third of them said it’s not very important or not at all important. Of all respondents, the majority agreed that the best way to learn is by taking online courses or buying books and working through the exercises.

Another Year, Another Stack Overflow Developer SurveyIn addition to developer behaviours and opinions (which we’ll summarize more in a future post) the survey also identifies helpful trends around developer technologies. For example, the chart to the right displays the top 10 most used programming languages in 2017.  You can also find charts for the top libraries (Node.js, Angular.js and .NET Core top that list) as well as the top databases (MySQL, SQL Server, SQLite). For each of those, Stack Overflow asked developers for their most loved, dreaded, and wanted technologies. Those results were usually consistent with the most used, but also generated some notable observations. Python, which overtook PHP in the Most Used list after 5 years, also shot to the top of the Most Loved.

Finally, with all of these technologies, IT contractors and full-time professionals alike always want to know which will get them the most money. Below is a list of the ones making over $100K in the US. Interestingly enough, Objective-C, CoffeeScript and Perl were also the 6th, 3rd, and 8th most dreaded technologies, respectively.

  • Go
  • Scala
  • Objective-C
  • CoffeeScript
  • Perl
  • C++
  • C
  • R
  • Swift
  • TypeScript

If you can’t get enough of statistics and survey results, you can check out the complete report here. We also shared 2016’s most loved, dreaded and wanted tech last year, in case you’d like to have a look at how things have changed.

Did you complete the 2017 Stack Overflow Survey? Are any of the results consistent with your opinions? Let us know in the comments below!

The Top Jobs, Tech Skills and Programming Languages

A Summary of the Most Popular Lists Featuring 2017’s Hottest Jobs

The Top Jobs, Tech Skills and Programming Languages of 2017Along with ambitious resolutions destined to fail, every New Year promises Top 10 lists published by every blog and media outlet, summarizing the top trends of the previous year and predicting new ones to come (we’re guilty of this ourselves… and have no shame about it either).

One such topic you may have seen is the hottest jobs, tech skills and programming languages. In case you haven’t been able to keep up, we compiled the lists from the industry leaders. Many are based in the United States; however, in our experience, in many industries (especially IT), employment and tech trends carry over to Canada as well.

As you scroll through the lists, you’ll notice one recurring factor — information technology is as hot in 2017 as its been for the past many years. Even in the generic employment lists, IT is in significant demand across all industries.

Fastest-Growing Skills, Q4 2016 (Upwork)

Upwork, arguably the world’s largest freelancing website, releases a quarterly list of the fastest growing tech skills. These were the fastest growing skills at the end of Q4 2016:

  1. Natural language processing
  2. Swift
  3. Tableau
  4. Amazon Marketplace Web Services (MWS)
  5. Stripe
  6. Instagram marketing
  7. MySQL programming
  8. Unbounce
  9. Social media management
  10. AngularJS

Toughest Jobs to Fill (CareerCast)

CareerCast published this list of the most in-demand positions that recruiters and hiring managers have the hardest time filling:

  1. Data scientist
  2. Financial advisor
  3. General and operations manager
  4. Home health aide
  5. Information security analyst
  6. Medical services manager
  7. Physical therapist
  8. Registered nurse
  9. Software engineer
  10. Truck driver

Technical Skills with The Biggest Increases In Demand (Forbes)

Early in 2017, Forbes revealed this list, ranking the top technical skills based on how often they appeared in job descriptions.

  1. Big Data
  2. js
  3. Tableau
  4. NoSQL
  5. Apache Hadoop
  6. HTML5
  7. Python
  8. Oracle
  9. JSON
  10. Salesforce CRM

10 Programming Languages Every Developer Should Learn (Social Hire)

Here’s SocialHire’s list of what they believe are the “crème de la crème of programming languages”:

  1. Java
  2. JavaScript
  3. C#
  4. Python
  5. Swift
  6. Rust
  7. Dart
  8. PHP
  9. Scala
  10. HTML5

Best Jobs in America (Glassdoor)

Glassdoor regularly ranks jobs based on number of job openings, salary and overall job satisfaction rating. These are their results for the United States in 2017:

  1. Data Scientist
  2. DevOps Engineer
  3. Data Engineer
  4. Tax Manager
  5. Analytics Manager
  6. HR Manager
  7. Database Administrator
  8. Strategy Manager
  9. UX Designer
  10. Solutions Architect

Most Promising Jobs of 2017 (LinkedIn)

As the world’s leading professional social network, LinkedIn may be the resource most connected to job seekers and employers alike. This is what they predict will be the most promising jobs this year:

  1. Hospitalist
  2. Pharmacist
  3. Sales Engineer
  4. Site Reliability Engineer
  5. Product Manager
  6. Financial Analyst
  7. Technical Program Manager
  8. Program Manager
  9. Data Engineer
  10. Scrum Master

Best Jobs in America (CNN/PayScale)

CNN and PayScale also created a list of the top careers, that they say have the biggest growth, best pay and most satisfying work. Here are the first 10 from their list of 100 careers:

  1. Mobile Applications Developer
  2. Risk Management Director
  3. Landman
  4. Product Analyst
  5. Information Assurance Analyst
  6. Quality Assurance Coordinator (RN)
  7. Clinical Applications Specialist
  8. Hospital Administrator
  9. Database Analyst
  10. Finance & Administration Director

How Canadian Developers Can Remain Competitive

Brendhan Malone By Brendhan Malone,
Vice-President, Central Canada at Eagle

How Canadian Developers Can Remain CompetitiveLooking for new development skills to remain competitive in your field?  Perhaps Rapid Application Development and Front-End Design are in your future.

An interesting question in mapping out your career and determining what skills are most important for you involves both an evaluation, through research and data analysis, of the current market as well as what is coming next.  None of us have a crystal ball, but there are certain trends and information out there that can give us a better understanding of what is coming.

As the majority of consumers shift to their mobile devices to browse and purchase, so will employers’ demands in the skills they seek. Mobile development is one of the fastest growing environments in IT.  Skills such as Android app development, HTML5, iOS, CSS, JavaScript, and Angular are in such an incredible demand that there is simply not enough people to do the work that is already funded.

Over the last decade we have seen an incredible amount of development work move overseas.  Heavy development lifts are being completed in countries where labour costs are a fraction of what it would cost to do it here. Employers in Canada are no longer looking for consultants to sit behind a desk and code, that work has predominantly left the country.

As the Agile Methodology grows in popularity and consumers move to the mobile space, having the technical skills combined with an understanding of marketing and brand objectives of the end client will make you in high demand. What employers want now are collaborative, creative developers with an acute understanding of marketing and sales objectives who can work in a team environment.

Do you have the skills required to stay competitive and relevant in Canada’s fast-paced development space? If not, it may be time to take an inventory of your skills — hard and soft — and refresh or upgrade those that are lacking.