Recently I have been interested in working with big teams. I have run my programming business/agency for over 3 years and I feel like I need to break away and just learn from the best. However, I would not consider myself as a software engineer because most of the languages I know are self taught. So, thinking of joining a big company and join the dev team as a junior developer might be safer or... am just not sure what and how to classify myself in the category. How do you tell or know you are a junior developer?
Usually "junior" is ranked according to some measure of experience (years in the job) and skill level (what you can do). Self taught isn't a problem so long as you can actually do things.
Each company will rank a little differently. A junior dev in one company might be a developer in another. It depends what they are looking for. An applicant might have the core programming skills but not have experience in automated testing, for example.
You can always apply for a mid-range job and if they turn you down, ask for feedback on what they were looking for that you didn't have. Some places will offer a lower role if they like you but don't think you've got the full skills for what you came in for, too.
So... apply and have an honest conversation about what you are looking for and why; and what you have experience doing.
Hashnode is a friendly and inclusive dev community.
Come jump on the bandwagon!
💬 Ask programming questions without being judged
🧠 Stay in the loop and grow your knowledge
🍕 More than 500K developers share programming wisdom here
❤️ Support the growing dev community!
Some really great comments here, which I'll try not to repeat. Instead, I'll share you a story of my own experience:
Back in 2001, I was fresh out of college with a degree in Computer Technology (sort of a hybrid of computer science and computer engineering) working for a small software company (5-10 people). I was initially hired as a visual basic developer, but switched over to IT when the main tech support guy left the job. Over the next 7 years, I did mainly IT work, but also did some internal web dev projects, which forced me to learn web technologies on my own, in other words, I was self taught. When I made the decision to look for another job, I decided to find one that was a pure web dev role, as I was getting burnt out with IT. Even though I had minimal experience with web dev, I immediately landed a role with a very large company (~500 people).
The reason why I landed this role is because I was able to demonstrate that I had what it took to get the job done. On my interview, I was able to show different projects I had worked on that showed my growth as a web developer, and after a few weeks on the job, I became the lead developer on a suite of sites that were high traffic sites. I imagine I was at a point in my professional career similar to yours - I was self taught and did most of my web dev on the side, so I assumed I was a "junior" at best. Looking back now, I think I was much farther along than I thought, and even if I wasn't convinced at the time, my employers were.
Self taught or not, if you can convey your strengths and skills to a potential employer in an honest manner, you should have no problem finding work.
Software Engineer is just a designation in the corporate world. If you have good fundamentals on Computer Science, especially with Data Structures & Algorithms, Operating Systems, Software Engineering and RDBMS(optional but bonus) along with a familiarity in one of the languages (preferably OO based) then you have high chances of getting into big companies from the skillset point of view. Some companies might ask for basic qualifications and some do not even care about it.
Also, you do not need to consider yourself as a Junior developer unless the domain is new to you. That is upto the company to decide your designation anyway. You better focus on showcasing your skillset, rest will be taken care.
One small free advice: Big teams not necessarily equals to huge learning because you'd be a small fish in a big pond so the scope of your work is always limited. I'd rather suggest to join a small startup and with the help of internet resources, you definitely can learn from the best.
Good luck! Cheers!
The whole aspect of aspiring to become the best in a field that we find technically challenging, regardless of what it says on our CV is largely predicated on the availability off good Role Models in the field, who wont look down on your ambition or level of competence when you decide to enter the field. There are good role models out there, but you have to search and find them. If you look at some of the popular programming languages of today, there are development communities around these languages, and invariably you can hit up a conversation with someone who is interested in guiding you , based on their time availability of course. The best way to engage top notch talent in your quest for technical proficiency , is to host a significantly difficult project idea on github, dabble with the code a bit, and post questions on related forums that will catch the interest of potential mentors . Try #FinTech , #GovTech , #EduTech or even a new and improved #WebFramework , or if you want to get really technical some #ProtocolStack or #DeviceDriver (thought the latter two might be more than a mouthful and a white elephant, unless it is being driven by a specific need in a specific business context)
What language are you looking to get proficient at ?
Junior vs senior isn't just about how much knowledge you have about programming in general. It can also be correlated to the responsibilities a position might hold. For example, a senior developer likely has to mentor a junior developer while they learn everything they need to know to operate at a company and how the codebase is organized.