Marketable Programming Skills
August 01, 2017
Author: Dave Cohen
If you’ve been learning programming on your own, you may have made worked through some books, followed some online tutorials, and made a decent collection of simple apps. At a certain point you may wonder how much else you need to know to be able to start working as a programmer. I’m a self-taught coder with experience in web technologies (JavaScript, HTML, CSS, etc) and Python. Compiling some info from job listings has enlightened me to what’s in demand in my area (Chicago, IL, USA) and in general.
Python-related Jobs
1. Bots (read more on Quora)
If you can automate tasks on the web using Mechanize, Requests, BeautifulSoup, and Selenium, there are many freelance temp jobs as well as part-time and full-time jobs.
2. GUIs
There are many different GUI frameworks you could learn in Python. Making an effective GUI for a program is always in demand.
3. Flask, Django, and more
Flask and Django are the famous Python backend frameworks. Django is used in some well-known websites. I hadn’t heard of Tornado and Twisted frameworks before looking at job listings, so it may behoove you to have a niche.
JavaScript / Web
1. JavaScript Frameworks
React, Angular 2, and Ember seem to be the most requested frameworks in my area. Angular 2 and Ember are full MVC frameworks, while React users will need to add components to get MVC functionality.
2. Mobile Frameworks
Ionic is an HTML5 framework which allows you to make mobile apps without using native iOS or Android languages. Ionic needs a native wrapper like Cordova or PhoneGap in order to run as a native app.
3. CSS Preprocessors and Frameworks
Sass (.scss) is in demand for its capabilities to write css with variables and other helpful mechanisms. Twitter Bootstrap is excellent for easily designing pages.
4. Back-end Frameworks
I’ve seen a lot of listings that use the MEAN stack (MongoDB, Express, Angular, Node). MongoDB is a NoSQL database that stores data as JSON. Express.js is a framework that adds useful web-capabilities to Node. Node is a stand-alone JavaScript engine designed to build scalable network applications. It runs events asynchronously, which enables it to easily handle complex network requests.
Services
Many companies are using AWS, so it’s worth investigating.
2. Firebase
Google’s Firebase is a full-fledged mobile platform and server.
Example Listings: Python, JavaScript, PHP, Ruby, Apple, Microsoft, Go, and more
Below are some anonymous job listings to show examples of what companies are looking for. Many of these require a CS degree or multiple years of experience, but don’t let that deter you from pursuing the professional path. Best of luck in your learning and job-searching!
Example Python Listings
“Full-stack Python Engineer with experience in JavaScript and asynchronous web frameworks such as Tornado, Twisted, etc. If scaling hard-to-scale platforms is your specialty, they want to talk to you. Experience with MongoDB for major analytics processing is also required.”
- Python experience required.
- Github experience required.
- AWS and virtual/cloud systems experience preferred.
- Experience with multi-institutional collaborative projects preferred.
- Commitment to providing a high level of service and working with a diverse team environment required.
- High degree of professionalism required.
- Attention to detail and strong communication skills required.
Example JavaScript Listings
“Looking for MEAN stack developer: Angular-2, Docker, AWS, Bootstrap 4, MongoDB, NodeJS”
“Mobile Developer needed with expertise in Database Design, AngularJS, Protractor/Karma Testing Framework, Ionic Framework”
- Node.js for the main app
- Python (3.5) and Scala for services
- Ember.js, Bootstrap, and SCSS on the frontend
- ES6 across the stack
- Postgres for the database
- Kubernetes, for deployment and devops
- AWS for infrastructure, leveraging EC2, S3, SWF, CloudFront, Route53, and much more
Example PHP Listings
PHP Developer Needed:
- Wordpress (need CS degree), info security, PHP, Javascript, MySQL, Linux, .NET
- Front end / shopify/e-commerce / woo-commerce
- Cron: The software utility Cron is a time-based job scheduler in Unix-like computer operating systems. (Running programs at scheduled times)
- 2+ years of CakePHP 2.x experience / Experience with clustered LEMP stack
- Laravel 5.3.+ and DBMS
- PHP plugins
- LAMP Stack: Linux, Apache, MySQL, and PHP/Python/Perl
- LEMP Stack: same as above with Nginx (engine-x)
- Vue.js
Laravel Developer needed:
- 4+ years of programming experience with PHP object-oriented frameworks such as Laravel, Symfony
- Mastery of http verbs and REST API development
- MySQL, NoSQL and Redis
- NodeJS and websockets
Example Drupal Listing
“The ideal candidate will have familiarity with Drupal and Wordpress and is proficient on the front end with experience coding in HTML, CSS, Bootstrap and jQuery. Familiarity with Adobe Photoshop, Illustrator, Indesign and Dreamweaver is mandatory. Ability to work with PHP and MySQL will advance applicants to the front of the pack.”
Example iOS (Swift, Objective-C) Developer
- Strong object oriented design skills and a track record of delivering designs to market
- Able to effectively communicate technical topics to Product Owners, Stakeholders and other business team members
- iOS Development experience
- Strong understanding of Objective-C design patterns (MVC, etc.)
- Experience integrating to backend systems with Webservices i.e. REST
- Experience with Source Control solutions such as SVN, GIT
- Experience with Storyboarding and Objective-C Blocks
- Comfortable working with core data
- Experience integrating 3rd party frameworks
- Bachelor’s degree, Computer Science, Engineering or MIS/IT major preferred
- Strong programming background and familiarity with at least one Object Oriented language (i.e. either Java, C#, .NET, Objective-C or C++)
Example Ruby / Rails Listings
- At least 5 years of experience w/ Ruby and Rails.
- At least 5 years of experience w/ relational DBMS.
- At least 2 years of experience w/ Git.
- Experience working remotely is required.
- Experience with code reviews and deployment automation tools and is required.
- Experience w/ WebSockets and/or other real-time comms technology is required.
- Experience working in agile environments is a plus.
- Experience with Heroku is required, AWS experience is a plus.
5+ years in software engineering Ruby Rails TDD RSpec REST API Design PostgreSQL Relational
JAVA Skills Needed
Java, JPA/JDBC, Spring MVC
MICROSOFT Skills Needed
- C++, .Net (C# preferred) Platforms : Windows (C++, .Net), Linux (C++)
- Software Developer: Visual Studio, SQL Server, ReSharper, NCrunch, ASP.NET MVC, Twitter C#
- MS Stack. .NET, MVC, EF, Typescript.
GO Skills Needed
“Our ideal candidate will have proven full-stack Go development and also be comfortable in SQL (Postgres) and Ruby on Rails. Experience in PHP, NodeJS or Python is an advantage.”
“Experience in mobile development using Swift, Java, Xamarin, Ionic2 or Phonegap is an advantage. Front-end requirements include the usual stuff; HTML5, SASS/CSS3, Bootstrap, Responsive Design, JavaScript, UI/UX and Gulp.”
MISC Skills Needed
- OOP / SQL
- Audio: Swift / Java
- Functional Programming: (Scala, Clojure, Ocaml, F#, Erlang, Elixir)
- Haskell Backend
- Firebase