I'm 29. BSc in Economics. Currently working as a business analyst (2-3 YOE), but my job basically requires only Excel. Realized that I can understand algorithms and programming languages with some ease (lots of evidence, but I'll omit here), and that made me think that I might have a better career as a developer - I really enjoy coding too and I'm decided about it. My current goal is to apply to a position in Europe (I live in South America), where I could get more experience. I have never worked as a developer, so I need advice on what is the best path that I should take. I would like to start applying in 1-6 months. Although I would really prefer to work as a back-end developer, my plan is to start in the front-end because I think that I can develop marketable skills faster in this segment, as I need to build functional projects to my portfolio in order to prove that I am capable of fulfilling the job expectations - and doing this in the front-end seems more realistic to me, since in the back-end I don't really know what could be a "functional project" that would make the interviewer confident about hiring me, and this could also require more training. Currently studying React JS (my focus) and JavaScript for front-end (already know HTML and improving CSS), but sometimes I get insecure as I wonder if I'm on the right track to achieve my goal. I've been studying every day. I've also started studying Go for back-end development, as JavaScript in NodeJS didn't seem recommended. I study back-end because I want to develop full-stack applications to my portfolio. I would like some advice on how to better transition into tech industry. Does this sound like I might succeed? What should I do to improve my chances when applying for jobs? I already know about LeetCode, but my biggest concern now is to develop marketable skills and build a portfolio to offset my lack of experience. Also, assuming that I am completely wrong about my assumption that I could get a job quicker in the front-end spectrum, what should I learn before applying for back-end positions? #engineering #software #frontend #backend #career #tech #swe
I think you are on the right track, but I would caution that most jobs are for either FE or BE, not full stack. So you may be more marketable to focus 100% on one or the other. Either Java (BE) or TypeScript (FE) are most marketable. Node is not hugely marketable but has the advantage of being the same TS/JS ecosystem so it is easier to do as an FE just to get a basic understanding of BE and build simple full-stack CRUD apps. If you do BE focus you can learn just enough FE to make a ui, like using Material-UI or Bootstrap type library with create-react-app. TBH this might be harder than the other way around because of learning 2 ecosystems (Java and JS/CSS/HTML). I think you may be right that transitioning without a CS degree is easier in FE. Interviews are more about actual code work, not LeetCode algorithms. Both can be done though. Could be hard to transition to BE once you are working in FE also (and vice versa). Bootcamp is not a bad idea if just for the networking and job connections.
Thanks for your advice. I really appreciate. You said that starting in FE could be hard to transition to BE, and that makes sense to me as well. I've been thinking about it these days and I realized that I'd rather have a career in BE. You said Java is the most marketable for BE, but I'm really enjoying studying Go. I think I'll specialize in Go at the moment and keep studying FE (React, CSS) as a hobby, at a slower pace. Any ideas on which technologies are good to study in order to become a more attractive BE developer? For FE I know React, but BE is kind of an unkown area to me yet.
My ex made the switch by getting her MS in CS at Columbia. After that, it was pretty easy. Before, all she had was her econ undergrad and pushed numbers around in SAS.
As a general advice, I’d focus on BE if you wanna be a BE engineer, but I’d learn “just enough” of front-end to solve problems or fix things when the time comes. Being flexible and handy is one of the best qualities you’ll be able to show to potential employers and also in your future job. Regarding what languages to choose, focus on knowing a language really well, and learning the basics. You’ll have to know the differences between language paradigms to navigate the programming world: eg. diff between procedural languages (not that common anymore I think?), object oriented languages, functional languages, etc. After you understand the difference between those paradigms, navigating different languages become understanding what paradigm you should use/think, and syntax differences. Regarding what to learn for BE: knowing distributed systems today is The thing you should focus. You can practice/study system design in general (the book Designing Data Intensive applications can be a great reference book), and also focus on a cloud provider to learn concepts (I’d choose AWS, it seems to be the most used one).
Your backend Portfolio (while you don’t have real experience) could be your code and system drawings of you reimplementing well known applications. This is very useful for you to practice to interviews as well as for you to practice concepts. How would you create blind from scratch for example? Probably it seems really difficult and daunting thinking about that with no experience, but search on youtube for “System Design of <popular tool>”, you’ll find lots of videos explaining the concepts and with time you’ll be able to do it yourself.
I'd suggest going through interview experiences on the internet to get an idea.