6 ms·
Ask HN: Chances for mature newbie
I've been playing around with computers on and off for 30+ years, but now at the age of 45 I have discovered a love of assembly language (x86) and reverse engineering.
So my question is how can I get a job taking my learning further, money is not a big deal for me,so willing to undertake very Junior level work,but I feel my age will be a big blocker.
- PeterWhittaker 10y agoThere are a couple of paths that might work. One would be to start working on an OSS project that is well supported locally and to attend relevant meetups. Get known in the community, get credibility, and, after a while, let people know you are looking for work. Another would be to start in testing - if you have the mindset for it. I know quite a few people with non-technical backgrounds who started in testing and moved onto careers as developers, integrators, and more, all with non-technical backgrounds. Testing is more about mindset, curiosity, organization, and detail, than about specific technical skills - or at least some types of testing are. FWIW, YMMV.
- Bumsonfire 10y agoInteresting ideas, definitely worth considering, thank you.
- jonwinstanley 10y agoWhy not document one of the projects you have been working on, maybe a medium post, a Youtube video and link to them here. Make sure you mention all the skills/techniques required. Next time someone is looking for those skills, hopefully your name will show up in their Googles?
- wyldfire 10y agoThis is a good idea, twofold: (1) marketing so that potential employers can find you, (2) demonstrating that you can articulate the problem-solving steps is valuable to any team on which you might work. All that time people spend interviewing candidates is trying to discern, "can I work with this person?", "Do they understand the skills they claim to have on their resume?", "Can they be a productive part of this team?", etc.
- Bumsonfire 10y agoNever even thought of that, hence my reason for asking here. Thank you for replying.
- tacon 10y agoSince you are looking to connect with new people and new work, you might want to include your contact info in your public HN profile. You can crank the Medium post or Youtube video strategy to the max by targeting the people you want to meet. First make a list of all the most prominent and connected people in your field of interest, say "reverse engineering". FollowerWonk is one place to start that list, e.g.: https://moz.com/followerwonk/bio/?q=reverse%20engineering&q_type=all&frmin=0&frmax=0&flmin=0&flmax=0&stctmin=0&stctmax=0 https://moz.com/followerwonk/bio/?q=reverse%20engineering&q_... Now start a blog, or maybe a Youtube channel, where you post about reverse engineering topics. Approach a target for an interview about reverse engineering today, and how they and their company are approaching the issues, because you are passionate to learn everything about reverse engineering. Make the post all about them, with their picture, their bio, etc. Almost no one turns down such an offer. Your interview post becomes a line item on their resume, and they share the link to all their friends. Do ten of these. Ten leaders in reverse engineering now know your name and return your phone calls. Let it be known you are open to new opportunities, and they may direct you to their friends who are hiring, etc., etc. You end up with some of the top search results for current topics and issues in reverse engineering.
- patrickgordon 10y agoNot OP, but, interesting post, thanks for writing it out. Have you used these tactics yourself?
- tacon 10y agoNot yet, but the basic idea is laid out in the ebook by Robert Graham about cold calling for customer development. Here is his blog post about it: http://blog.asmartbear.com/cold-calling.html http://blog.asmartbear.com/cold-calling.html A careful listening to Mixergy interviews shows two or three of his guests have used the same strategy to get started. It is a very general technique, but it also has a significant level of effort, so you can't really do it in multiple niches at once. Thus, any one person won't have valid statistics about it. Someone should really write an entire book about this general approach. I think it would still work even if your targets knew what your goal was.
- deleted 10y ago[deleted]
- deleted 10y ago[deleted]
- dmuth 10y agoThis, very much this. If you can, try to build something that you can open source and put on GitHub as well.
- ebbv 10y agoFor me your age wouldn't be a factor but your lack of experience is. Especially if your goal here is professional Assembly development, those jobs don't usually go to someone with no experience. If you really want to get into programming, I'd go for something higher level like PHP, Ruby, JavaScript, Python, etc. Then create some stuff in the language(s) you've chosen. This will give you a shot at getting a junior level job in that language. When I hire someone to a junior level position, I'm still not going to hire someone with no experience. It's going to be someone with less experience but still some. I don't have the time to teach someone starting from zero. You need to go from zero to a low level of experience on your own.
- gizmo 10y agoSomebody who expresses a love for assembly programming won't necessary love php programming as much. Your advice may be practical, but there's more to life than practicality. As others pointed out: 45 is young and you can do low level programming for as long as you've got your health. At 45 you still have half your career ahead of you. It's not so hard to demonstrate assembly knowledge by putting some projects on github. Low level programmers are in high demand, so it's just a matter of interviewing until you get a yes.
- jakecodes 10y agoI've had a few old guys on my teams in the past and they've been great. You aren't old. They were 55+. When I interview people, age does not concern me (45 wouldn't even make me blink). It is only if I think that person will be an asset to my team. And if they are, why should age bother me? More important questions I ask myself is: Is this person going to be self sufficient or are they going to need a lot of assistance? Is this person a generally positive person who is willing to communicate with others and me about any struggles they are having so we can fix it? etc...
- i336_ 10y agoAssembly language is sadly not widely commercialized. I'm sure there are lots of vacancies out there, but the positions are likely incredibly specific and require a lot of specialized knowledge about a particular field. Both assembly language and reverse engineering are vast, ambiguous fields of knowledge, so it's difficult to provide an on-point answer. A couple things come to mind though: - Quite a lot of demoscene-related sourcecode has been released over the past few years (covering many individual productions along with supporting tools), and quite a lot of it is in assembly language. Considering that you've been tinkering for 30+ years, DOS/similar-era stuff may be of particular interest to play with or explore. This would best be considered akin to soldering practice, to use an electronics analogy - DOS-specific knowledge (including eg low-level VGA or SoundBlaster/GUS control) is not likely to be helpful commercially. That said. old technology is similar to learning a language like Latin, and provides the advantage of neatly sidestepping the general social/human confusion concentrated within the current focuses of technological development. - Many people are likely to generally recommend microcontroller development, but I understand chips with eg ≈256 bytes of RAM or ROM (where hand-assembling code would be useful) are somewhat rare nowadays. This may be interesting to explore though. - Finally, considering that you really like reverse engineering, you could make yourself available for hire for medium/long-term contract work reversing major applications or systems. Depending on the system in question this may be a lot of fun or incredibly tedious; reverse engineering is generally nontrivial work, as on the one hand there's the occasional tedium of picking IDA up when it doesn't realize it's fallen down, and there's also the general strain of ensuring the technical specifications you produce are complete, bug-free, and provide 100% coverage (or, in the case of self-modifying code, "100.∞% coverage"). As an aside, I think your age is actually a big asset - I don't think enough emphasis is generally put on the fact that age and maturity means an applicant already has a lot of "life" things taken care of. Obviously domain-relevant skill(s) remain key, but it's possible an employer may be willing to provide additional education to someone who's been around the block a bit. Case-by-case-specific though. This forum doesn't provide a way to edit posts and comments after an hour, but you can always update it via a top-level reply.
- Bumsonfire 10y agoThank you for taking the time to provide such a thoughtful answer. I was thinking of starting on messing with hardware, you've given me thoughts of a starting point.
- tomelders 10y agoI'll tell you what I tell all my friends and acquaintances when they ask me how to get "into" programming. "First find a problem to solve, then we'll talk." I know it's glib, but I genuinely believe that learning to program or learning to be an engineer is, in and of itself, pointless. And every time I've tried to teach people the fundamentals of programming, they get bored, move on, and never come back. It could be that I'm a bad teacher - and I am - but I think there's something else at play. I think it's that the reality of being a programmer is very different to what people think it is. For example, people think you can lean to program to a point were you "know" how to program. As though at any point a programmer can accomplish any task by sitting at a computer and bashing the keys in just the right way to solve any problem as if the solution was pre-ordained, just hanging in the aether waiting for you to pluck it into existence. In reality, it's a never ending journey of learning. You can never stop learning. There will never be a day when you can stop educating yourself and proclaim to the world that you are now, and will forever be, a programmer. And I think when that dawns on people, they lose interest. Also, programming is just the tool. The job is something very different. I could teach you how to swing a hammer in no time at all, but you'll be no closer to being a sculptor or a joiner or a stone mason. A web developer can't write a high frequency trading algorithm without first learning a lot about a lot of other subjects. People often want to learn to program for all the wrong reasons. But if your desire is to solve a problem? Well that's a different story. If you can find a problem AND you have a desire to solve it then you've taken your first step towards becoming a programmer... or a doctor... or a farmer... or anything else. And if you can also think of a good solution, that's your second step. What follows is a few million more thankless, frustrating steps. If your problem is best solved with the help of a computer, you will become a programmer. So I would say this to you. You're probably going to have a hard time breaking into assembly as a career at your age for all kinds of reasons. Some valid, some not. But if you can use what you know to solve a problem, and it's a problem people want someone to solve, or better yet if it's a problem people don't even realise they have! If you can do that, then all the challenges you would otherwise face in your quest to become a professional assembly programmer, they all disappear. You won't need a job. The people who have all the jobs to give, they'll need you.
- wccrawford 10y ago
- fecak 10y agoThe key for you will likely be getting in the door. The hurdle is not so much your age (especially for Assembly) as it is your lack of experience. I don't think you'll find the same level of ageism for Assembly jobs as you might for other types of programming work. You won't get in the door just applying to jobs and saying you've got 30 years of being a hobbyist and love Assembly. You'll have to demonstrate something you can do, and ideally it will be something interesting to the person receiving your message/application. This becomes a marketing issue, and you can market yourself as a junior programmer and career transition candidate willing to take on junior work at junior prices for the chance to get in the door. You can usually disguise your age at least a bit by omission in resumes. A resume isn't a full biography, so we don't need to list every single thing (especially since you will likely have lots of irrelevant professional experience). We can also delete things like graduation dates (if you attended college) in order to avoid someone guessing your age. I'm the same age as you - if you're priced correctly for your skill level, your age might even be considered somewhat of an asset (maturity) in certain companies and jobs, but the key for you is marketing whatever skills you do have and leveraging those to get the skills you want (more programming).
- smoyer 10y agoLoving assembly language is a great trait for an embedded systems programmer. It's also (in my opinion) almost mandatory if you want to be a good C/C++ programmer. Those languages are close enough to the metal that you often have to know what's going on at the instruction level. There are still tons of projects/products that use very small microcontrollers or microprocessors. You're not going to run Linux and Java on an embedded system that's got 8KB of EEPROM and 256 bytes of RAM. Good luck!
- i336_ 10y agoI'm genuinely curious how popular µCs with 256 bytes of RAM actually are - the marketing for stuff like the Arduino and the whole IoT thing, while an annoying mosquito, is very effective at suggesting that the <1K scale is all but forgotten. How much of a deployed base - and perhaps more importantly, how much future demand - is out there for this sort of thing? Would it be worth it for me (as a random person on the Internet, not OP) to spend the next N years learning these microcontrollers' instruction sets, errata and idiosyncrasies? Like OP, I'm incredibly interested in assembly language, and "really tiny microcontrollers!" is one of the instinctive responses I also gave in my own answer, but I'm not sure how widespread demand for it is, so I was somewhat more cautious.
- sokoloff 10y agoThese µCs are Harvard architecture (contrast Von Neumann of typical computers), with the program being stored in ROM (typically Flash) and the RAM being only for variables. The program size, therefore, is not confined to 256 bytes. They are absolutely here to stay in consumer products. Whether the job market will be good and constant over the next 25 years is something that I can't say, but they're likely not going away, and to the extent they do, they'll likely be replaced with something so similar that those skilled in the art will still be able to adapt.
- i336_ 10y agoAh, I see. I wonder if compilation for Harvard architectures is any more or less difficult than for Von Neumann. I'm guessing there are pros and cons with both. Thanks for mentioning that they're here for a good bit yet, I'll definitely take a look at them.
- Bumsonfire 10y agoSo many great answers with encouraging practical advice, it's heartening. Maybe I'll be as much help to someone someday.
- saynsedit 10y agoBe more confident and you'll get any job you want. No one here on HN knows the future and you know yourself better than anyone does.
- gaius 10y agoGet some demos up on Pouet http://www.pouet.net/ http://www.pouet.net/ no finer portfolio in the ASM community than that!
- onetwotree 10y agoI think that ageism might be less of a problem than you think. While it certainly exists at companies that have a certain culture, I've generally worked for companies that explicitly reject "Valley Culture" and we often try to hire older engineers. The difference in experience, work ethic, and overall attitude is huge and positive. I'm the second youngest engineer at my current (small) company at 31, and it's great. Your main barrier is experience, but if you're willing to go for a junior level position, that shouldn't be an issue. So generally, look for companies with a more mature culture - avoid buzzwords like "rockstar" and "ninja" (secretly, everyone should do this), steer clear of "unicorns", and read the bios on a companies website, and you should be able to find a good fit.
- ericssmith 10y agoI was delighted to see most of the answers here encourage you to continue from where you are in your interests. Only one comment mentioned abandoning your love and going to where everyone else is. Bad idea. You will find that if you keep pulling on the threads that interest you, worlds will continue to open up. And there is definitely work in those worlds. Age is definitely not a factor. The speed with which you are able to learn definitely is. Good luck. I think this is awesome.
- ericssmith 10y agoI was delighted to see most of the answers here encourage you to continue from where you are in your interests. Only one comment mentioned abandoning your love and going to where everyone else is. Bad idea. You will find that if you keep pulling on the threads that interest you, worlds will continue to open up. And there is definitely work in those worlds. Age is definitely not a factor. The speed with which you are able to learn definitely is. Good luck. I think this is awesome.
- drblast 10y agoThere is a demand for reverse engineers in the security field. If you know how to use IDA Pro and you're confident with reverse engineering malware, which most people find intensely boring and tedious, you can probably find a job doing that. There are also excellent RE classes at Recon (https://reconcx https://reconcx) although that requires an investment of time and money. A word of caution... doing RE in a mediocre way is fairly easy. Doing it well requires knowing, well, a lot of shit about a lot of shit. Encryption, compilers, information theory, high level compiled languages, network protocols, etc. are all required knowledge to not get stuck at some point while doing that job. And sooner or later you'll find you'll be writing your own RE tools out of necessity. This might sound cynical, but the good news for job seekers is that there is often a higher demand in the security industry for a mediocre reverse engineer who is willing to make a lot of guesses, abandon problems that are too difficult, and move on to the next thing quickly. If you're willing to learn in the job it's almost an ideal place to start.
- Bumsonfire 10y agoSorry to sound like an old record, but I truly feel humbled. I have never in my life received the encouragement I have received from total strangers here today. The best way I can repay I feel is to make a success of my new to be career and give back just as much.
- boniface316 10y agoI will be in your boat soon after my military retirement. When I need to look up for someone, I am expecting it to be you my friend!
- maxxxxx 10y agoI don't think you'll have a chance at a lot of Silicon Valley companies but there are plenty of companies who may give you a chance. Especially since you seem to be willing to do junior work and take a junior salary.
- kevindeasis 10y agoRead this: https://medium.freecodecamp.com/being-a-developer-after-40-3c5dd112210c#.z5dsyafx1 https://medium.freecodecamp.com/being-a-developer-after-40-3...