3 ms·
I have a follow up question. How do I get back into the art of hacking after years of writing software for corporations? The landscape is very different today
by sidcool 10y ago
I have a follow up question. How do I get back into the art of hacking after years of writing software for corporations? The landscape is very different today.
- dfansteel 10y agoTie one arm behind your back. Try to do the stuff you've been doing but without the resources that have been at your disposal. Build a simple Twitter clone API using only C APIs. Roll your own HTML layout renderer in Open GL. What if NGINX and Apache didn't exist? What would you do then? Watch "Halt and Catch Fire" as an engineer. Listen to the problems they're solving and try to solve them yourself. At the end of the day, hacking is about creative problem solving.
- sidcool 10y agoIndeed. The attitude that world is full of interesting problems to solve is the basis of the hacker mindset. Thanks for suggesting Halt And Catch Fire. It looks great.
- ChuckMcM 10y agoThere are two ways to consider this question, hacking as in "Mr. Robot" or hacking as in writing code for the joy of creation and discovery. Given the reference to 'writing software for corporations' I'll consider it the latter. It is profoundly important for engineers to periodically rekindle their sense of wonder if they wish to stay relevant and it sounds like what you are asking, if so that is super awesome. Unfortunately for different people it is different things. So you might have to flail around and try a few things first before you get where you want to be. The good news is that it has never been as easy to try different computing things as it is today. One piece of advice though is to be mindful of tooling. Which is to say think about the tools you use and if they help or hinder your wonder. Nothing puts the kabosh on wonder like slogging through a click and type interface for an hour for each attempt at making progress. So think about tools as well as what you're using those tools for. Perhaps take a week to try different ways of editing source code for example to find one that is the most frictionless. Finally, before we get to some suggestions, YOU MUST change how you 'score' your progress internally. On thing I have seen again and again is people who have been coding professionally for a while their 'score' is "projects completed in unit time" the bigger the number the better they feel, that was how their boss scored them and they adopted it for their own use. There are learning curves on things and if you score your self by completions you will become disillusioned. But if you can allow yourself to adopt a score of 'interesting things learned' over unit time, then you will be much more likely to be successful. Trust me learning that you don't like functional programming is just as important as successfully blinking an LED on a demo board. Here are some things which have helped me or people I know. Raspberry Pis - It is a very inexpensive computer that people look at for teaching but it is also a great little server and can run everything the "big" internet servers tend to run so if you wonder about how email systems, dns, and web servers interact? Or ways to build a "server farm" of multiple machines? You can experiment with your own "server farm" which sits on a couple of dinner plates rather than a noisy 19" rack in your basement. Machine learning - there are lots of interesting courses online for free and a ton of data you can use to train algorithms. Building a small Neural Net is easy[1] and can trigger a lot of wonder. Arduinos/Embedded systems - have gotten much more approachable and nothing says fun like having your hat respond when someone says something around you :-). I love going to Maker Faire and just basking in all the creativity of imaginative ways people have applied computation to problems that don't need it. Software defined radios - the idea of writing code which becomes decoded data at the output is quite fascinating to me and I've been having a lot of fun with it lately. [1] http://www.wildml.com/2015/09/implementing-a-neural-network-from-scratch/ http://www.wildml.com/2015/09/implementing-a-neural-network-...
- mjevans 10y agoTry out a new language and see how it feels. If you like it, you've added another tool to your belt. If you don't, now you know that /you/ should avoid using that tool. Go (Google) has been on my list of languages to try for a while, I should use it in a project this weekend...
- TYPE_FASTER 10y agoWorking on robotics software and learning new to me concepts like control loops was pretty fun.