Monday, October 27, 2014

Programming vs Programmer

Although I have many years of professional programming experience, it's still startling to realize the distance between writing a program for "Hello World", vs working as a day-to-day programmer. The amount of stuff you have to know, and use quickly in ever-changing combinations, is substantial.



A student decried that his two-month class in Ruby didn't really prepare him for being a big-P Programmer, it just taught him little-p programming.



My view is that the material in that class, as well as Computer Science in general, is meaningless. What you learn is not useful, it's all about learning how to learn.



The following article shows how to do professional-level deployment of your Python webapp onto a server.  It uses ten different technologies, only one of which is "Python"!  This is all after your webapp is programmed and complete.  The pieces are: 1) version control with Git, 2) Python, 3) separate environments with Virtualenv, 4) installing packages with Pip, 5) using Flask for the webapp itself, 6) running webapps with Gunicorn, 7) handling web clients with Nginx, 8) keeping services running with Supervisor, deploying with 9) Fabric (TLDR: don't use this), and 10) off by one errors.



Most of the above technologies are complex, and have multiple books written about them. Using them together requires a firm grasp not on each tech itself, but in which parts to ignore, and which to use, in combination with which other technologies.



This is a hard skill to learn, but this characteristic separates little-p programmers from professional Programmers.



Kickstarting Flask on Ubuntu - setup and deployment - Real Python

No comments:

Post a Comment