(no title)
ahewett | 1 year ago
What I would honestly recommend doing is a bootcamp for full stack, or even just backend or frontend, or native, React Native, etc. Start there. You must learn the basics of code first. Not only that, but you will need to know how a non-academic team works. Github for starters. Also if anyone ever tells you that "elegant" code in one line is better than "readable" code in 10 lines, punch them for me. That is not how reality works in the workplace. Clear variable names. Clear function names. An understandable architecture for what is trying to be accomplished. These are the most important things, not reducing a perfectly understandable algorithm to something akin to calculus.
I actually made some of the first BCIs for the PC a long time ago, but already was a certified architect in C#, Microsoft, etc. These days you want to go for Node/JS or Go or Java, etc. Once you learn one language it is simple to learn another, particularly C-based languages (JS/TypeScript/C#/Java/ObjC/Swift and so on - notably they use brackets instead of indents or words to denote functions and objects.
I used to do AI work, but mainly medtech these days like digital therapeutics, and paradoxically I also do bank security (startup I was working with got bought by a bank, thus the disparity between the two. hey, you make friends along the way, help them out, and occasionally a hustle becomes your job)
I highly recommended becoming intimately aquatinted with databases, both relational and otherwise. And learn how to optimize them. You WILL have to work with a relational database at some point and thus you will need to learn SQL, indexing, etc.
Along the journey of my life, I've become quite the physicist and like to think I have a deeper understanding of math than most people. The only benefit I see to a degree is you might learn some of that. Physics, signal processing (from an EEG for example), and so on, are unavoidable. HOWEVER, there are a TON of libraries that will do all of that for you, and along the way you will learn it. I highly doubt anyone writes their own Fast Fourier Transform (FFT) these days, but to use it you have to understand how it works, what it's giving you, and what it's not, in order to avoid egregious mistakes. I've had to correct many people on what a Fourier transform actually does, many of them who have related doctorates. There are some truly stupid highly credentialed people in the world. IMO even the wikipedia article on it has some serious mistakes.
Honestly? Everything you need to know you can learn yourself online very cheaply through online courses. Get yourself a mentor or two. People LOVE teaching others. A bootcamp, however, will land you your first job.
As far as getting a job, when it comes to programming or engineering, "the proof is in the pudding". I've interviewed hundreds of programmers. At first I read all about their achievements at MIT and all of what they are experts in. But, in the end, EVERY INTERVIEW will consist of a live coding session. 90% of the people I interviewed could not write a solution to total softball questions like, "Alphabetize this text" or "Parse this JSON". I would even let them google and they still couldn't do it. I've had people right out of bootcamp that were better coders than the most highly credentialed CS graduates.
Which brings me to my final notes: 1) Live code as much as possible. Learn to love it. I failed the crap out of my first live coding interview, but faced my fear and now I'm the only one in the bank department I'm in that live codes. As I'm sure you can imagine, product and design LOVE IT. 2) FORGET ABOUT LEETCODE or any other such crap. If I was ever given a leetcode question in an interview I would tell them point blank that people just memorize the answers to these, they are not applicable to real-life application, and then I would walk out because that company is clearly not serious. 3) Whiteboard interviews are also going to happen. Super easy. Flow chart with how the frontend connects to the backend, branching enough into each until they know you know what you're talking about. 4) Don't forget the old school! If someone asks you what "PUT" means in a request and you don't know the answer, that's pretty embarrassing. Learn about basic networking, from old to new. 5) LEARN DEFENSIVE CODING: This will give you a leg up because I've never met a programmer who knew it who hadn't also been a hacker at some point in their life. Basically what this means is how to reduce vulnerabilities, but also how to straight up trick would-be hackers. For example, error messages. If you have an error message that says "License invalid", it will be ludicrously easy to find that string and thus where the license code is likely to be. Instead, screw with them. Say your program detects that a user has hacked into your app, if you simply cause a crash or exit that just gives them an easy way to find and remove the problem. Instead, perhaps there is a commonly used number in your app. Change it so they get weird data. Or maybe division of numbers is needed at some point. Change the divisor to 0 to cause a random crash. Some defensive coders will simply use a timer, set it to a random value, and then cause a crash in some way. Whatever you decide to do, use multiple defensive techniques, and always always screw with the hacker so they have no easy way to determine where to look to bypass your protections.
-------
Ok so I've overwhelmed you and you may be rethinking your decision. Don't. Jump right in! Learn as you go, keeping the above advice in mind, and you will succeed. Take a few courses on the basics of the actual reality of working in the private sector, so you know the basics of github, but make no mistake: show me a coder that says he doesn't google at least once a week, I'll show you a damn liar.
As far as aerospace, I've no clue. I have friends at NASA who are bored out of their minds, but the are all credentialed. Even so, the exactly University you go to barely matters, as far as I can see. Again, coding and the understanding of fundamental concepts is something that can and will be tested during an interview, and maybe even before the interview with a take-home project or a general phone call.
Above all, have confidence in yourself, and walk out of an interview that is stupid or has a bad culture. EVERYONE has imposter syndrome. Make THEM court you. I've straight up never gotten a job I wrote a cover letter for. Usually out of some company that is truly interested calls YOU. They can see your resume on LinkedIn like everyone else. Which reminds me, up your LinkedIn game big time. Yeah yeah everyone hates it but you start writing things, people invite you on podcasts, the snowball starts rolling.
Well that's all I've got. I hope it helps!
Good luck!
No comments yet.