Tuesday, Feb 23 2016

Python Engineers: Must-Haves and Nice-to-Have Skills

Written by

Python Engineers Must Haves and Nice to Have Skills

It takes years to learn all the ins and outs of any technology, but you don't need to know everything before putting the skill on your resume. Focus on the must-have skills first, then stand out from everyone else with the nice-to-haves. For Python engineers, the skills break down this way.


Must-Have Python Engineer Skills


Core Python. 

You don't need to know every module, but you need to know the basics, including the differences between Python 2 and Python 3.


Web frameworks. 

Almost no project today starts from scratch; most leverage an existing framework. Learn one of the common Python frameworks such as Django.


Object-relational mappers. 

It's easier to connect an application to a database through an ORM rather than through writing SQL.


Understand multi-process architecture. 

The ability to correctly write and manage threads and processes is key to developing high-performance applications.


Developing and using RESTful APIs. 

Understanding how to use RESTful APIs is necessary to integrate your application with other components.


Building Python application. 

Your team may have a build engineer, but you should know how to package up code for release and deployment.


Good communication skills. 

Even in a purely programming role, you need to be able to communicate with teammates and to collaborate to resolve issues.


Good design skills. 

You must be able to implement servers that are scalable, secure, and highly available.


Nice-to-Have Python Engineer Skills


Front-end developer skills. 

Python developers typically work on the backend of Web applications, but every application needs a front end also. Learn how to code front ends, too, and you can contribute more to every project you work on. JavaScript, HTML, and CSS are the basic foundation for frontend work.


Database knowledge. 

Despite the importance of ORMs, it's beneficial to understand databases as well. Some performance issues may be best resolved directly in the database rather than in code.


Systems administration. 

Knowing system administration lets you solve problems at the system level rather than just the application level. 


Script writing. 

Along with systems administration, the ability to write shell scripts lets you control the server.


Other programming languages like Java or C++. 

As useful a tool as Python is, it isn't appropriate for every programming project. Know other languages so you can use the best language to solve the problem.