Tag Archive for: programming

3 Industries That Love to Hire Veterans

3 Industries That Love to Hire Veterans

For many veterans and military spouses, finding the right career path can be a tremendous struggle. While a growing number of industries are becoming more open to the idea of hiring veterans or military spouses, there are a few career fields that actively seek to hire vets and are also a great fit for any former servicemember. These career fields often require the same skill sets and capabilities that are taught in the military – such as teamwork, attention to detail, and discipline. If you’re a veteran or military spouse looking for your next career move, consider these three industries that love to hire veterans.

Law Enforcement:

This shouldn’t come as a surprise as many law enforcement positions offer an easy transfer for today’s veterans. Due the nature of police work and similar organizational structure, law enforcement will likely feel more familiar for servicemembers who have been deployed overseas. Additionally, law enforcement roles often mirror their military counterparts – from dog handlers to detectives, many veterans already have much of the specialized training necessary to work on a police force. What’s more, there are already many veterans in the law enforcement community so it’s hardly difficult to find individuals, or even entire groups of people, with shared experiences.

Technology: 

Although many veterans and military spouses may not know it, they are the perfect fit for the nation’s fastest-growing industry – technology. With recent tech booms across all major cities, CEO’s from Silicon Valley to Austin are looking for the best employees to fill their ranks. And from what we’re hearing, it’s not about hiring the next JavaScript expert, it’s about hiring a team player who can show up on time and do the right thing even when no one is looking. Contrary to the myth, most tech companies aren’t very fond of the ‘rock stars,’ rather, they favor disciplined and calm individuals who can keep it together in times of stress. It’s no wonder then, that major tech companies like Amazon, Dell, Hewlett Packard, and SpaceX are actively seeking to hire thousands of veterans and military spouses. For today’s veterans, the tech industry offers an exciting career that requires a can-do and adaptable mindset – old hat for soldiers, sailors, airmen, and Marines. And considering that most tech roles — whether you’re coming on the team as a day-one programmer or developer — offer salaries near or above six figures, the tech industry should definitely be on every veteran’s radar.

Government:

Government roles are a good fit for veterans as they essentially adhere to a similar organizational structure as the military. Additionally, government positions span many different agencies and departments – including civilian roles in the Army, Navy, Air Force, Marines, or the Coast Guard. In fact, the government also offers positions for those interested in the aforementioned industries of law enforcement and technology. Veterans will also find that their military experience can translate into promotional points for a particular career field and, perhaps best of all, veterans and military spouses receive preference for all government job openings. This offers a tremendous advantage, and incentive, for today’s veterans and military spouses to apply. If you’re interested in working for the government, head over to USAJobs to find your next career field.

While veterans are a great fit for many different industries, it’s clear that many can truly excel in law enforcement, tech, or working for the government. And since all these fields are actively recruiting veterans, it’s worth considering a career in any of these three professions.

Deja Baker’s Coding Journey

Deja Baker’s Coding Journey Leads the Way for Women and Veterans Alike

Despite the fact that the tech community is growing faster than ever, there are still two demographics that are often overlooked – women and veterans. However, the dearth of representation from both communities is quickly changing, especially when you have individuals like Deja Baker spearheading the effort. Baker, who enlisted in the Navy as an Analyst, eventually pursued her interest in technology as a Computer Science major at the Naval Academy.

Seeking to further her education in the coding industry, Baker applied for and received Code Platoon’s Women In Technology Scholarship, which fully covers her tuition, and is scheduled to attend the all-veteran coding bootcamp this fall. While there were a number of other bootcamps to choose from, Code Platoon was always the first choice for Baker.

“One reason why I chose to apply for Code Platoon is because its exclusively for veterans,” Baker said. “I feel that being around people from a similar background, who are working towards the same goals, will prove more beneficial to the process.”

In addition to providing a sense of community, Baker believes that an all-veteran bootcamp will likely be composed of the most highly motivated and disciplined students in the coding industry.

“Veterans have worked in a variety of different roles all over the world, and because of that, veterans have a wide array of experiences that allow them to adapt quickly when engaging in new projects,” Baker said. “I feel that a lot of veterans have the drive and the aptitude to work towards a role in tech.”

Although many of today’s veterans often have skillsets that translate well to coding and programming few choose to pursue a career path in the tech industry. Baker says that veterans who have given thought to a career in coding should, at the very least, give it a try.

“I know a lot of people that are interested in coding who are too worried to see what it’s all about, but there are abundant resources online to just dabble in it and see if coding is for you.”

It’s a sentiment that’s shared by leading tech giants such as Google, IBM, and Intel, all of whom have taken measures to help veterans gain a footing in the tech sector. And because there are plenty of opportunities waiting for veterans with strong programming skills, Baker says she’s eager to begin her first day at Code Platoon.

“I’m excited to have this opportunity to study and work towards becoming a developer; I’m looking forward to working in teams in a highly collaborative environment and to be challenged while solving difficult problems.”

Why I Chose Fish Over Bash

Why I Chose Fish Over Bash

Why I chose Fish over Bash for students

I’m currently the lead instructor at Code Platoon and an instructor/developer at the Turing School of Software and Design.

I’ve been advocating the Fish shell and when the choice is up to me, I choose that for my students. Enough people ask about the decision, particularly in relation to the preinstalled Bash shell, that I figured it’s worth laying out my reasoning.

TL;DR

Fish addresses many of bash’s shortcomings and is much kinder to newcomers, with only 3 or 4 new things to learn for people coming from Bash.

The decision give students my defaults

I used to let students choose whatever shell/editor/etc they wanted. But most students are not in a position to understand the tradeoffs, and they fear making changes. This would often lead to situations where students would defer all choices and 6 months into the program wouldn’t have so much as a coloured prompt. Why does a coloured prompt matter? It means that every command they type, they have to scrutinize carefully to see what the command was and what the output was. Add that to all the other costs of being new, and it gets expensive quickly!

The problem with being a beginner is that you get a lot of practice in staying a beginner. What a beginning tennis player does most of the time is chase the ball. They get to be really good at chasing the ball, but all other forms of tennis involve hitting the ball.

— Tim Gallwey

I eventually decided that letting them choose had little value because it meant inconsistent environments, most in some state of brokeness. Students were mostly overwhelmed by all the decisions they had to make, and were too ill-informed to understand the tradeoffs anyway. It turns out that overchoice leads to dissatisfaction, regret, and paralysis. I know the tradeoffs, and what they struggle with, so I’ll make those choices for them.

So then, the question becomes “what environment should I give them?” I’ve tried 4 different editors now (Sublime, Atom, RubyMine, and Vim), and two different shells (bash, fish). In the end, I realized that most of the decisions I make for myself are better than the defaults, and due to my prioritization of feedback, my choices are generally good for learners. One of those decisions was the Fish shell, and this post is intended to explain why it is a better default than the Bash shell.

The case for Bash

Based on conversations I’ve had, there are 3 arguments for Bash:

  1. It is already installed.
  2. Most shell code is written for Bash.
  3. Most people that can help know Bash.

My perspective: We are installing many new things already, and don’t accept this as an argument that we should stick with many other defaults. Fish is mostly compatible with Bash. And there are only a small number of new things someone with Bash knowledge needs to learn in order to use Fish.

The case for Fish

Highlighting

Fish will highlight the command they are typing differently from the arguments they are giving, making it apparent that this first bit of text is different. If it is not made explicit like this, students can go months before they understand that the first thing they type is a program and the things after it are arguments.

highlighting args

If they type an incorrect command, it highlights this in red, so they immediately know, as opposed to knowing when they get an error message after running the completed command.

highlights incorrect commands

It highlights quoted args differently to let you know they are a single argument, and if you have incorrect syntax, it highlights this in red:

highlighting identifies command vs arg vs quoted arg vs incorrect quoting

Suggestions

Fish will suggest previously typed commands. What was that command to start postgresql? type pg and it will suggest whatever I put last time! This is even directory aware, so that suggestions will be be prioritized based on where I use them!

suggestions

It understands program options and lets you tab complete to see what the option is and a brief description of the option:

suggests option completion with summary

Highly compatible with bash

Syntax for common use cases is usually the same:

Wildcards are the same

wildcards are the same

Redirects are the same

redirects are the same

Pipes are the same

pipes are the same

Things Fish does much better than Bash

It correctly handles string escaping where bash completely falls down (Bash later added $'this kind of string' to compensate).

fish quotes correctly bash does not

It’s much easier to set up a prompt that changes based on the success of the previous command (bash can do this, too, it just took me several years to figure out the right way to do it — the PROMPT_COMMAND variable, if you’re curious)

success displays in the prompt

When you get to scripting it, the language syntax is dramatically more understandable. I tried to write a function just now, in bash it took me 2 tries, then I wrote it long-hand so I could press up to see how it translates to one line (5 tries in the recording because I messed up). Notice that even if the fish version wasn’t obvious, the autosuggestion from my previous success would let me know. And while defining it, I get syntax highlighting and proper indentation.

functions in bash vs fish

Fish handles string escaping and allows you to edit across lines. I’m not sure what library bash uses, but watch what happens when I try to go up to edit what I wrote (also notice I got the name wrong at first, but fish highlighted it in red, so I knew to go fix it). It’s good enough that I’ve written 30 line programs inside of strings in the shell!

editing in bash vs fish

Bash only recently got basic data structures like hashes and arrays, and the syntax to use them is both unintuitive, and forgiving of mistakes (meaning it is easy to do the wrong thing, and difficult to realize it). Here’s an example: setting arrays involves complex syntax, whereas in fish, it’s the same syntax you use for everything else (a command followed by args) and look how many ways there are to access it wrong in bash, many of which you wouldn’t realize you got wrong unless you knew to check it against an element with a space. And you have to opt into safe behaviour by quoting everything… I’m not even sure what the unquoted use case is!

arrays in bash vs fish

And here’s bash’s syntax for hashes: http://stackoverflow.com/questions/1494178/how-to-define-hash-tables-in-bash

Another thing about Bash

Also, the relationship between .bashrc, .bash_profile, and .profile is utterly confusing and leads to bugs when things get placed in the wrong file (I’m pretty sure this is because it’s inconsistent across operating systems). A very competent friend (maintainer of gems we all use, who prides himself in knowing everything) once confidently told me what they all did, and I tried it in front of them and it was incorrect.

Summary

So, Fish addresses many of bash’s shortcomings and is much kinder to newcomers, with only 3 or 4 new things to learn for people coming from bash. I documented most differences I could think of over here, and that document goes much further than even I actually need. In our material on the shell, there’s only one place we need to differentiate it from bash, which is in how environment variables get set (12). So the cost is low and the value is high.

Salutation

Hope that explains my motivations sufficiently