Hi everyone, my question is mainly towards professional software devs/programmers. I am 30, have never worked in professional IT and would like to gauge my programming proficiency. I want to know if I am even remotely qualified for a junior programming job - whether it is a career option open to me.
To give you some background, I have always been very tech-savvy but mainly in the hardware department, like DIY-build a desktop and fixing computers/Windows issues, but I have never studied programming or Computer Science - hence nothing fit for the latest IT job market boom.
For university, I hold a Master in Astrophysics. I self-learnt Python many years ago, but did not have any real experience until my Master thesis in 2020. Most notably, I improved on the 3D stellar orbit fitting code that my research group already was using, I reverse-engineered it to do the opposite - to extrapolate positions based on an orbit. I also wrote a bunch of utility/automation scripts for personal use - like plotting overview charts with labels, timelines showing 50-observations...etc.
As you can already see, I was nowhere near the "professional" league, nor could any of these use cases be translated to IT experience. At the time, ChatGPT didn't exist, so I did not learn how to write "clean codes", or the most efficient ways to write something. Whatever I wrote, was based on a lot of google, stack-overflow and editing.
In the last 3 years, I worked as an Engineer without touching programming. I knew I wouldn't get hired in IT field anyway, as I never attended any bootcamps or had any certificates, and my tech "stack" is only Python, which seems to be very rare among job postings?
...Until now. Since last month, I have been working (completely solo, no support) to develop a real-time noise monitoring program in a small company, which polls data from sound meters every second, upload and store it in a SQL-database, then can be access through a website. Since I am the only person in the company who can program, this ambitious project/idea was therefore assigned to me.
As an ex-scientist, I meticulously research and plan things first. I had zero experience with SQL and HTML/CSS/JS which I found that I had to use. I figured things out (alone) every step of the way, with ChatGPT/Google/Stack Overflow/Reddit for help. Mainly I rely on ChatGPT to do the heavylifting and ask to explain new syntax/concepts.
I have been making great progress on the project and learnt much more than I could have ever imagined.
I am a very precise and inquisitive person - I am specific and meticulous with my prompts, so I almost always get GPT to do exactly what I want.
I read every line of the code it gives me, as I take it as a learning opportunity/exercise - I make comments on almost every line/loop/if statement in the codes/functions to help me keep track of the logic flow and how to write something.
I also ask a lot of follow-up questions to GPT about new syntaxes, concepts and their limitations - I test every function, every possible exceptions/scenarios that I can come up with, debug the codes myself and fix bugs/mistakes ChatGPT made (GPT has made quite a number of bugs/stupid mistakes so far).
However, I cannot help but feel that I am not a "real programmer" because 90%+ of my code was written by ChatGPT.
One of my programs has almost 1000 lines of code so far, all the logics/syntaxes used are basic enough that I can fully understand. However, for a piece of code that GPT can give me in 15 minutes, it would have easily taken me 1 week to write from scratch and debug, and I could never write it as robust and concise.
Maybe it's a delusion, but I always have the impression that professional programmers can write codes with fluency like speaking English? After all it is what they do for a living, 8 hours a day. If professional programmers are native English speakers, I would be one who still struggles with the tenses, pronounces and prepositions.
Moreover, all the job postings I have seen require a diversed tech stack such as C, C++, JS...etc. I can't help but feel that I will immediately fail any code-test in an interview.
In addition, I feel that all the things I am learning right now are so basic, they are just exercises to people who took Computer Science in their Bachelors.
By my standards, so far I have not done any "real" software engineering. I am a physicist/architect who tell an engineer to build something I designed. I may be able to come up with the plans/requirements, draw some blueprints, supervise, test, debug and fix any bugs; but I did not really build anything. At best I am a...test engineer? code-debugger?
All this being said, I have no plans to switch to the IT field currently, but I want to know if I am selling myself short. I feel that I have no chance competing with CS grads with rigorous training on the job market, but somehow I am able to miraculously develop a piece of software from scratch without prior education and senior's support, and somehow, it just works. That should count for something?
So, do you think I am remotely qualified to call myself a junior software dev/programmer?