Where Have All the Coders Gone?

It seems like coding bootcamps, coding programs in schools, and other development initiatives are popping up left and right these days. After all, learning how to code, even just a little, is helpful for more careers than software engineering. In fact, some none-coding jobs are starting to require a basic level of coding ability. With all of these programs pushing coding these days, you may start to think the industry is flooded with would-be-developers as well as senior engineers, right? Wrong. In fact, there’s a significant shortage of qualified people in this country to fill the available programming positions. The Job Disparity In 2015, just under 60,000 people in the U.S. graduated with degrees in computer science, whereas the number of open jobs in the computing field was over 500,000. Of course, graduates aren’t the only that can fill open positions. Many of those jobs are likely to require at […]

7 Steps to Better Code Review

In a field like software development that demands attention to detail, peer review is essential. When the slightest mistake can cause serious errors throughout the project, another set of eyes (or several) will help ensure that everything reaches its full potential. While there are automated tests you can perform to vet your code, nothing beats the human touch. Code review had been demonstrated to significantly speed up the development process. But what are the responsibilities of the code reviewer? When running a code review, how do you ensure constructive feedback? How do you solicit input that will expedite and improve the project? Here are a few tips for running a solid code review. Establish goals. Code reviews are more than just finding errors and bugs.You may be thinking about adding new features and how to implement them. You may be trying to ensure that the code meets certain style standards […]

Coding for a Better Life

A few years ago, there was a viral story about a programmer in Manhattan who met a homeless man and, instead of simply giving him a few dollars and walking away, bought him a used laptop and spent weeks teaching him how to code. While this type of gesture from an individual may be unusual, the underlying concept is actually fairly common. Coding skills are in high demand. There are a myriad of good, stable, well-paying jobs that hire people who can code, and the field is continually growing. In fact, there are dozens of organizations out there who specialize in finding and reaching out to people looking to improve their station in life, whether it’s adults who are down on their luck or underprivileged kids, and teaching them the ins and outs of coding. Here are six such organizations. #YesWeCode. The #YesWeCode initiative was originally begun by Prince, with […]

6 Usability Testing Methods That Will Improve Your Software

Successful software projects please customers, streamline processes, or otherwise add value to your business. But how do you ensure that your software project will result in the improvements you are expecting? Will users experience better performance? Will the productivity across all tasks improve as you hoped? Will users be happy with your changes and return to your product again and again as you envisioned? You don’t find answers to these questions with a standard QA testing plan. Standard QA will ensure that your product works. Usability testing will ensure that your product accomplishes your business objectives. Well planned usability testing will shed a bright light on everything you truly care about: workflow metrics, user satisfaction, and strength of design. How do you know when to start usability testing? Which usability tests are right for your product or website? Let’s examine the six types of usability testing you can use to […]

The Rise of Python

Popular webcomic xkcd, which frequently expounds on the complexities and pitfalls of computer programming, once did a comic about discovering Python. The comic joked that the open source programming language made everything so simple and straightforward that it would even allow you to fly, just by typing “import antigravity.” Indeed, the simplicity and versatility of Python has made it the preferred language for a lot of programmers, particularly in a professional setting. In fact, last year, it held the #2 most popular programming language (as rated by github pull requests), a position it has maintained for at least the last 4 years. How did Python first come to be, and how was it able to rise to the top of the pack like that? Let’s take a look at the rise of Python. A Brief History of Python Python was first developed in the late 1980s and officially launched in […]

Do People Enjoy Being Software Engineers?

With an annual salary ranging from $50,000 to $120,000, software engineering can be a very lucrative career. But is it a fulfilling one? What’s the rate of job satisfaction among programmers and software engineers? And how does it compare with the rest of the country’s jobs? Job Satisfaction Statistics A survey last year by weekly magazine The Economist found that, overall, 58% of workers in the U.S. are at least reasonably happy in their jobs. Only 12% are actually unhappy with their jobs, while around 31% are ambivalent. According to another study by the University of Chicago, the career with the highest rate of job satisfaction in 2017 was the clergy, at 87.2%, followed by firefighters at 80.1% and physical therapists at 78.1%. On the other end of the scale are roofers, waiters, and non-construction laborers, all with job satisfaction rates under 30%. Software Engineering Job Satisfaction So where do […]

The Problem With Repositories

What follows is an edited down version of a chat conversation in the Operation Code slack. The context is that of someone studying up on .Net but, patterns being what they are, this applies elsewhere as well. The question was over explaining the repository pattern. I have strong opinions here and differentiate between how repository is defined, how it might be implemented in a manner true to it’s intent, and how it is often (mis)implemented with unfortunate consequences. The best opinions are changed opinions and this is one that I admit to having been wrong about. I used to be a defender of the repository pattern. It was likely the first pattern that I felt I understood. Back in 2009 it was also the subject of debate largely – as I remember it – between .Net giant Oren Eini and the folks over at Codebetter (blog unfortunately no longer particularly […]

Getting started with the Applitools SDK

This blog assumes you have some basic knowledge about automated visual testing with Applitools. If it isn’t clear to you why it is awesome and would like more info, go checkout their site applitools.com. I first heard about Applitools through one of my colleagues at Surge in spring of 2017. I was explaining some of the challenges with my current client. Specifically, the amount of time developers spend testing each release (developers are the QA department) and how there was an initiative to focus on CD (continuous delivery). I mentioned that while we have several functional tests, they did not verify that our application’s pages look like they should. This is when my Surge colleague suggested I look into Applitools. Over the course of several “Improvement Days” my client holds, I was able to work on a POC with Applitools. The project I work on is a web application that […]

Are You Multilingual? Why It’s Important to Master Multiple Programming Languages

Every programmer has a language they prefer to work in. Whether it’s because it’s the one they’re most used to or the one that best meets their coding needs, they’re not shy about telling you which is their favorite and why. But man cannot live on Perl alone. No matter how versatile or easy to use your favorite programming language, it’s important to be able to use others just as fluently. Here are a few reasons why. Job Opportunities Google programming is done using Python. Say your dream job is to work for Google, and you learned Python for that very reason. You’re an expert in it. So you apply to Google, but sadly don’t get the job. No worries. With your programming skills, there are plenty of other tech companies that would love to have you on your team. So next you try Microsoft. They use primarily C, C#, […]

Who needs testing anyway?

When business owners discuss the best way to develop software, testing is always a scary topic. How much time and money you should spend on testing is not an easy question to answer. What type of human resource you should commit to testing is an even harder one. Test Automation obviously requires some degree of programming skill, but software developers are a precious resource. Why waste developer’s time on automating tests when you’ve got new products and features that you need to roll out the door? Bringing on a dedicated test automation developer is no small expense, either. You could probably hire two or even three manual testers for about the same amount as one software engineer. What makes a test automation engineer that much more valuable? These questions and their answers mean everything when creating a testing strategy. Here at Surge, we recognize and advocate the benefits of both […]