3 ms·
This demonstrates the problem if our education material focused so heavily on micro problems and so little on the next step of building a (non-trivial) app. If
by Touche 13y ago
This demonstrates the problem if our education material focused so heavily on micro problems and so little on the next step of building a (non-trivial) app.
If you want to learn programming I recommend having a project in mind. Learn a little bit and get to hacking on the app. Don't worry if the code is good or not.
- FLUX-YOU 13y agoEven if we rewrote a lot of the education material to an ideal, there's still a huge leap from hobbyist to employment that I don't think is well covered. My problem is that I believed employment would be within reach after teaching myself for a year.
- sp332 13y agoEvery programming job I've taken (ok, there have only been three) involved a lot of on-the-job training. And I have a 4-year CS degree!
- jaggederest 13y ago> My problem is that I believed employment would be within reach after teaching myself for a year. I was doing paid work within a year of learning PHP. It wasn't good work, but it was work. The problem is that people want to go from 'learning programming' to 'building Facebook from scratch' - that's why the OP is having problems, when you compare your work to Wordpress, of course your work is going to come up short when you're new. An analogy to carpentry: nobody expects a novice carpenter to make an entire set of kitchen cabinets from scratch and have them all fit and function correctly, or build a timber-framed barn. But you certainly would expect a novice to be able to build you a crate or knock together a stool, shim a squeaky table leg, or make you a cutting board. The equivalent paid work I was doing was along those lines - tweak this so that the tax calculation is updated, change the pricing structure to add a 10% surcharge if the order is over X pounds, those kinds of things.
- Buttons840 13y agoThis comment makes me realize how extremely lucky I was when I started learning to Program: I had a friend working for a local medical company; they wanted to robo-call patients and remind them of appointments. They couldn't afford the existing $300,000 + $50,000 solution they were considering, and he told me if I could come up with something they would pay me $10,000. I had done some simple C++ programming in high school and knew I was good enough at programming, so I quit my job at HomeDepot and became an aspiring programming with a goal -- in my moms basement. I read about Asterisk (open source phone software), then about PHP (which didn't excite me), then about Python. I liked Python. I read the 1200 page "Learning Python" book, but I learned most from the Python chat room on freenode IRC. They were harsh but helpful: "you're code sucks" and "use twisted" and "read this". I manged to piece something together in 6 months and got the $10,000. From there, I got a entry level job, then job hopped for a 250% pay increase, then job hopped once more for another small pay increase, and now I'm here. I think most people don't get offer a free contract and a goal to work towards before they even start.
- delluminatus 13y agoStep-by-step guide to implementing a complex project: 1. Think carefully about what behavior you want the project to have. 2. Prepare your development environment. 3. Hack on stuff until it seems to work.
- danneu 13y agoFor me, it's: 1. Pick the simplest, most trivial concept at the core of your project and implement the minimal toy version of it in a REPL. 2. Now implement the next simplest thing that moves the needle of progress. 3. Repeat. I started working on a Bitcoin implementation a few months ago to practice Clojure. It started with this: (def block0 {:hash "abc"}) (def block1 {:hash "def" :prev block0})
- SDGT 13y agoI broke through that barrier by just building my own framework. By the time I stopped, it was still grossly under featured compared to real FW's, but I figured out how to write an MVC framework with some of the niceties like URL routing, helper functions, validation harnesses, etc. The other part was building a websocket server in PHP, because the concept of something depending on Guzzle and parts of Symfony2 just struck me an insane for something like a standalone daemon. Those two projects dumped me face first into the internals of a framework, and then into the nastiness of protocol implementation (hybi-17) in PHP. After that came PHP daemons for the AWS SDK, learning how to make shared memory segments work with different processes, etc. Once the floodgates are open, there is no stopping.