The last time Hackerfall tried to access this page, it returned a not found error. A cached version of the page is below, or click here to continue anyway

Typical Programmer

Popular articles

Im distilling what Ive learned from almost 40 years of job hunting and interviewing, both as a candidate and as an interviewer. I have experience with programming jobs both in and out of the tech industry, and 10 years freelancing.

I have been freelancing as a remote developer for over ten years. I specialize in legacy systems and taking over abandoned and unfinished software projects. I see the problems customers havehiring and working with freelance developers. Heres my advice for avoiding some of the potholes.

I mostly work on legacy web applications in PHP + MySQL. Usually the original developer is not available, so I have to figure out the code so I can fix problems or add features. For a long time most of the PHP code I worked on was written in the classic PHP style: URLs for each page, PHP code and HTML (and Javascript) all jumbled together, business logic and presentation mixed in the same file. A few years ago I started to see more MVC-style code based on frameworks like Zend, Symfony, Laravel, CodeIgniter, etc. I thought this was a good thing, and that maintaining PHP code that was based on an MVC framework would be easier. My experience, however, has been just the opposite.

Heres a list of things I know, or at least know about, as a web developer. Im sure Ive left a lot of things out. Web development is a large and complex collection of technologies, tools, languages, protocols, and services. I started programming for the web back in 1995, so Ive been able to adapt to changes and learn new tools as they were released. If I had to learn web development from scratch today Im sure it would take me a long time to master even a few of these things.

I was asked today on Twitter about how to find work as a digital nomad. My comments are too long for a Twitter reply and may be interesting to people who dont follow me on Twitter, so here goes.

Ive worked on big projects, small projects, in huge teams and by myself, in fossilized federal agencies and cool Silicon Valley companies. I have learned and used at least twenty programming languages. Ive lived through waterfall/BDUF (big design up front), structured programming, top-down, bottom-up, modular design, components, agile, Scrum, extreme, TDD, OOP, rapid prototyping, RAD, and probably others Ive forgotten about. Im not convinced any of these things work. This article has the best comments of anything Ive written.

This is another article beating the everyone must learn to code drum. Employers cant find enough people with programming skills, schools arent turning out enough engineers, jobs at these cool companies are left unfilled because American students are too lazy or short-sighted to spend a summer learning basic computer language. If only it was that simple. I have some complaints about this everyone must code movement, and Mr. McDonalds article gives me a starting point because he touched on so many of them. Some thoughtful comments .

Abject-oriented programming is a set of practices for encouraging code reuse and making sure programmers are producing code that can be used in production for a long time. The number of lines of code in the application is a common measure of the importance of the application, and the number of lines a programmer can produce in a day, week, or month is a useful metric for project planning and resource allocation. Abject-oriented programming is one of the best ways to get the most lines of code in the shortest time. Most popular all-time article.

Continue reading on