Developer Development

Growth

Most developers focus their time on learning new technologies or languages. They go to tech conferences and expos, read about new frameworks online, and take the occasional class on Coursera or Udemy. This is great, but I think too many developers are lacking critical skills in other domains.

I taught myself to program. Then, when I finally went to college a little over ten years ago, I decided to get a degree in psychology. Why? Because I wanted to better understand people. Like many developers, my interpersonal skills weren’t the best. I figured that by learning more about how people think, it would benefit me professionally.

Now, I’m getting ready to start my masters degree. Not in computer science, but in business. I already know programming incredibly well, so the next step for me is to better understand business. Not only will this help me as an entrepreneur, but will also help me should I ever transition back into the workforce.

Where do you focus your educational efforts? While learning more about your trade is a great idea, don’t ever forgot to hone those ancillary skills that will improve not only your marketability but also your ability to understand how to use your trade to the benefit of the world you work in.

Line Counting

Codes

A common metric used in software development is lines of code. While it’s not always a useful metric, it’s sometimes nice to know just how large a project is. I have a script I use to count lines of code in a folder. It will iterate through a variety of common file extensions and count all lines of code excluding blank lines. It’s written using sh, so it works on Unix, Linux, or MacOS, and should work on Windows if you have the Bash subsystem installed.

#!/bin/bash

# add additional extensions here
extensions=(bas c cc cob cpp cs cshtml fth f90 go h html java js jsp m pas php pl py sc sh sql ts xhtml)

for extension in ${extensions[@]}
do
  lines=`find . -name "*.$extension" -type f -exec cat {} \; | tr -d '[:blank:]' 2> /dev/null | grep -v '^$' | wc -l `
  if [ $lines -ne 0 ]
  then 
    echo $extension: $lines
  fi
done