DEV Community

What advice would you give to High Schooler (Thinking of software developer career)?

Clean Code Studio on August 07, 2021

Clean Code StudioFollow Clean Code Clean Life ~ Simplify "If a junior in hi...
Collapse
 
grahamthedev profile image
GrahamTheDev

Run, run for your life, become anything else! 🤣

Seriously though, my advice would be to think of something you want to see in the world and build it, make mistakes, ask for help when you need it and keep going.
Oh and if you go on Stack Overflow to ask questions, grow a thick skin!

By the time you finish school you will probably already be employable so can save yourself thousands in tuition fees (if you don't want the experience of Uni of course!).

By the time your friends are thousands in debt you could be on 6 figures a year and helping make the world a better place!

Finally (as I am biased) learn about accessibility no matter what type of development you go into, we need our next generation of developers to do a better job including people!

Collapse
 
cleancodestudio profile image
Clean Code Studio

Great advice @inhuofficial !

Love this quote:

"By the time your friends are thousands in debt you could be on 6 figures a
year and helping make the world a better place!"

If you don't mind me asking, do you have a personal reason inspiring you to towards pushing developers towards remembering to develop with accessibility in mind?

I love that you're pushing it, I'll be the first to admit that with all of the other responsibilities we have while building software I'll often times forget about accessibility all together.

It's important and the right thing to do, it just often times gets lost in the chaos of all the moving parts.

Collapse
 
grahamthedev profile image
GrahamTheDev • Edited

If you don't mind me asking, do you have a personal reason inspiring you to towards pushing developers towards remembering to develop with accessibility in mind?

No I don't have a personal reason, other than I see a huge problem in the industry that is excluding people.

I am a very unusual accessibility advocate as I do it half for the betterment of the human race (anyone got a vomit bag for the massive cliché?), half because I see a massive market that is being ignored!

And massive markets with unmet needs (and providing solutions for those needs) are what make people rich!

I am probably the most selfish accessibility advocate on the planet (oh, maybe that should be my new thing instead of "the angry accessibility guy")! 🤣

Above all it is an interesting area of expertise, which is why I like talking about it.

Once you start learning about all of the little things that you should be doing and why, it can really make you a better overall developer. You start to think of things from the perspective of others and you tend to make much better choices when it comes to UI design and UX, or at least that is what I believe.

I like this tip, but also am the first to admit that I don't love programming. I love what programming can do, the potential behind it, and that it's a craft you can continually become better at.

This right here, is the way we get even more people into development, you should write a whole article on it! It isn't about writing code, it is about what that code can do! Loved that whole comment but that open sentence was near perfection for me!

Thread Thread
 
cleancodestudio profile image
Clean Code Studio

I might just have to do that, I'll be following you moving forward @inhuofficial both on dev.to and twitter (twitter.com/InHuOfficial)!

Thread Thread
 
grahamthedev profile image
GrahamTheDev

I have been enjoying some of you other posts too!

Looking forward to the next one, have you managed to rest a bit after your all nighter?

Thread Thread
 
cleancodestudio profile image
Clean Code Studio

Appreciate you @inhuofficial !

And oh yah, we're on a much better sleep schedule now. I joined one of the smart devices team as a dev for Amazon starting this past Monday.

Was on that stereotypical programmer night schedule and had to push to stay up for the entire day to re-regulate my schedule. It was a rough day shifting it back over, but we're on that healthy sleep schedule now😊

Thread Thread
 
grahamthedev profile image
GrahamTheDev

Oh cool and congratulations!

I bet that will be interesting working on smart device stuff!

Glad you got back to days and a normal schedule!

Collapse
 
weirdguppy1 profile image
weirdguppy1

Hey, 14 year old developer. My advice to high schoolers is to start to love programming. This is so important because as teenagers you need to have passion in this field in order to continue programming as a job. If you want to have a programming job just to make money, you won’t be a productive programmer.

Collapse
 
cleancodestudio profile image
Clean Code Studio • Edited

I like this tip, but also am the first to admit that I don't love programming. I love what programming can do, the potential behind it, and that it's a craft you can continually become better at.

I love that software is a career choice that doesn't require you to go tens of thousands of dollars into debt.

I love that if you choose the non-college path in programming that you can be making six figures in around 1 to 2 years if you stay committed to the process - and you can have that income without the debt for college.

I love that I can reach the upper levels of the industry and make 200k+ a year at FAANG without a college degree (Using me as a personal example, you can make a hell of a lot more than that working at FAANG).

The way my mind works though, I don't need to love what I do - I need to be challenged with a craft where I can become better every day. I need that craft to have some major pay offs when I become damn good at it. And although I'll never be done working (wouldn't know what to do with myself), I need to see that all of my hard work has end game potential if I invest tremendous effort and play my cards right.

As someone trying to give honest advice and perspective to a kid thinking about the industry, do you think that my personal admission to not loving code and instead loving what code can do for my life and the world as a whole are similar enough? Is my view point rare (reaching a level of greater than average success as a software engineer when I don't love code but instead love what code can do)? In your experience, how many developers have you worked with who love to code compared to love what code can do.

Do you think those differences in what an individual loves to do is worth bringing up a high schooler or good advice what so ever to a newbie joining the industry?

Best case scenario, he simply loves code - but if he loves the potential of code like me and it's just not enough in 99% of cases to incite actually joining the computer science industry then I'd hate to recommend it based on my personal take.

I'd hate to recommend going into the industry when all you love is the potential and the outcome, and instead tell him to make sure you love coding itself - but that's not my personal take.

I'd also hate to tell him that you have to love code or you won't go anywhere in the industry and you won't enjoy the industry because that hasn't been my personal experience.

I enjoy code some days and other days I don't, for me it's more of a grind similar to running a marathon. I feel healthier when I'm doing it every day, I'm financially fitter for it, and although I don't enjoy the 24 mile runs personally - knowing I've made it through the grind and am better for it is a feeling I love.

Through code I've avoided college debt, joined the largest digital marketing company in the US, created multiple income streams via content creation and tutorials, built websites that are sitting and gaining value based on their domain (find.how is a domain I bought a few weeks back that'll gain value with age), joined an Amazon team that's working on voice/visual code APIs which provides insight into a different kind of business that I'd have the potential to start in the future, etc...

Through code I've done so many things that I'm intrigued and interested in, but code itself is just a tool in my mind. The daily coding grind is synonymous with daily lifting sessions and multi-mile runs in my mind. Not necessarily my favorite thing - I love some parts like I love living and I despise other parts like I despise running.

Coding is the tool, but I'd never go as far as to say I love programming. I love opportunity, entrepreneurial under takings, improving my over all fitness on a daily to do what others can not because I was willing to do the hard s*** no one else was willing to.

To me coding is the hard training sessions, and everything I'm able to do with coding is what I love.

I'd hate to recommend going into the industry when all you love is the potential and the outcome, and instead tell him to make sure you love coding itself - but that's not my personal take.

I'd also hate to tell him that you have to love code or you won't go anywhere in the industry and you won't enjoy the industry because that hasn't been my personal experience.

So anyways, apologies for the rant - but with that perspective and insight what would your thoughts be on loving code vs. loving what code can do for your life and the world?

Collapse
 
tarekali profile image
Tarek Ali

Same

Collapse
 
cleancodestudio profile image
Clean Code Studio

Lol, you sir, understand the definition of brevity 😂

Thread Thread
 
tarekali profile image
Tarek Ali

K.I.S.S.

Collapse
 
mfurmaniuk profile image
Michael • Edited

I guess it depends on what you develop as well, or if you know how to code but go into QA. People who love to tear things apart, see how they work can also do great things and with the Shift Left that blurs between being about to code, test, and do other things is also there.

I work as a toolsmith and have for years, developing build and deploy pipelines and test frameworks, while I can't say I live and breath programming I can get things done. Software Engineering has a lot of different bits than just programming. But that's usually the first thing people think of when they consider software engineering.

Collapse
 
tarekali profile image
Tarek Ali • Edited

As a 15 year old developer, I think the best advice I could give is: be dedicated and self-sufficient. I learned so much simply by paying attention and studying the resources immediately available to me (ie documentation, stack overflow, and books). Courses are great, but I think they are often used as a crutch and provide less value than initially perceived.

Collapse
 
cleancodestudio profile image
Clean Code Studio

Great advice Tarek! Learn how to find the answers and dig into the details to solve the problem yourself using tools like StackOverflow, Google, Documentation, and solid Books.

Collapse
 
auroratide profile image
Timothy Foster • Edited

I mulled over this overnight, and of the myriad of things I'd want to say managed to narrow it down to just two things:

  1. Find a community to share with. - Learning is all about feedback. Whether it is Stack Overflow, DEV, or something more specific to the tech you're learning, it is important to share, ask questions, and be open to listening.
  2. Build something useful or valuable to you. - My first website was some boxes that calculated the quadratic formula, because I didn't want to do my homework. I think as much as we want to add value to the world, it is much easier and digestable to start with yourself. And who knows? What's useful to you might be useful to someone else too.

Regarding college, I'm one of the people who managed to go through it. I won't make a recommendation, but will instead just share my experience.

The fundamental thing I learned is this: college teaches computer science, but jobs require software engineering. Another way to phrase it, college best prepares you to become a college professor, not an industry worker.

5 weeks of training at my first job did more to prepare me for the job (and other adjacent jobs) than 4 years in university. Things I learned in those 5 weeks that I never learned at college include:

  • Automated testing (seriously, how on earth does college fail to teach the single-most fundamental thing about engineering?)
  • Agile software delivery
  • Refactoring and evolutionary design
  • Working on cross-functional teams (aka, not just devs)
  • Dealing with stakeholders

All that said, college did provide an opportunity to learn a bunch of things I was able to transfer, mostly tons of raw practice on stuff I was unfamiliar with, exposure to a diveristy of sub-fields, git and linux, and algorithmic problem solving. I wouldn't have landed my job without any of that. Could those things be learned elsewhere? Almost certainly, as long as it doesn't sacrifice Point #1 at the top.

I remember college for the experiences I had with a bunch of people going through the same thing. In the end, it was less about what I learned and more about who I was with while learning.

Collapse
 
cleancodestudio profile image
Clean Code Studio

Thanks for this awesome, well thought out response Timothy. I really appreciate your personal take on college and what you benefited from your experience going to a university.

This will be one of the comments that will most definietly give Stevie from insight into the college vs. non-college paths.

Thank you for investing the time to create such a thoughtful response.

Collapse
 
threeal profile image
Alfi Maulana

You are right, I have been spend my high school life on Point #2. But without college, I believe I won't get the Point #1.

Collapse
 
tmblog profile image
tmblog

I teach computer science to kids up to 18 years old.
I always tell them about the financial benefits of programming but that's not enough they need to have a passion for solving problems, those who like maths and physics tend to enjoy it more. Of course there are exceptions (pun intended) it'll need to be handled.

Programming is a skill that can be used as a fall back even if they didn't use it straight away, it's a skill that stays with them for life.
Programmers see the world differently for example, they see everything as a problem that requires a solution which in turn can be automated to make money. Abstraction, decomposition and computational thinking makes you smarter and these are all transferable skills and instantly makes you employable in many sectors.

Otherwise money isn't enough to motivate lots of young kids. Tell them to try some exercises on scratch, freecodecamp or even codecademy. The last one is great though not free they get to make some real world projects using latest technologies. It's a great starting point to see if they'll get into it.

Just a my few pence. Hope it helps.

Collapse
 
cleancodestudio profile image
Clean Code Studio

Thanks @tmblog ! Great advice, and keep doing your think as a teacher. Having a teacher's input is awesome!

Just as a side note here in response to your comments on math:

I personally hated math...until I got into programming.

Have the immediate feed back loop of trying, seeing if I failed, and then immedietly being able to attempt another solution changed my entire outlook on math.

Writing down a 5 to 25 step problem in the traditional pencil and paper way felt hellish to the way I think and improve.

Appreciate your comment, and I'm really happy to be able to send Stevie a teacher's two-sense on the topic of computer science. Thank you!

Collapse
 
gabrielfallen profile image
Alexander Chichigin
  1. Program as much as you can, try developing as different types of programs as you can, learn "crazy" programming languages (Scheme, Haskell, Prolog, Forth) while you have time for that.

  2. Learn as much Discrete Math as you can, especially Math. Logic (but Combinatorics, Graph Theory and Abstract Algebra too).

  3. Learn Statistics. Statistics turned out to be paramount not only to programmers but pretty much to every single person in the current world. I predict it becoming even more important.

  4. Kinda surprisingly lately I wish I'd learn as much Topology as possible while I was in a university. But that's related to my personal interests, you might become interested in completely different things.

  5. If you really want to make an impact on society through science and technology or work on the bleeding edge of science and technology, forget about Computer Science and programming and learn Biology, Genetics and Bioinformatics while you have time for that. Gene Engineering and Editing is becoming new "Computer Science".

Collapse
 
cleancodestudio profile image
Clean Code Studio

Thanks for the step by step breakdown Alexander!

That's the second time I've heard statistics pushed as one of the most important subjects to learn in today's era of technology. I might just have to take a Statistics course myself.

Collapse
 
gabrielfallen profile image
Alexander Chichigin

It's not step-by-step and not even in the order of importance, just several distinct points.

If you're going to learn statistics from zero prior knowledge, please consider this book: drive.google.com/file/d/1awJBpfse5...

Collapse
 
buphmin profile image
buphmin

College is good for some people and bad for others. Without really knowing an individual I could not say whether or not someone should go.

Regardless I'd tell them to practice building real software. Not academic functions, not to-do lists, but real flushed out pieces. Map out what you want to accomplish, go through building out utilities, tests, features. Because at the end of the day that is what you will be doing on a cycle. Then all the debugging that goes with it. Besides that...pace their selves, because burnout is terrible.

Collapse
 
cleancodestudio profile image
Clean Code Studio

Highly agree with you buphmin. Learning through doing, age old advice that is invaluable to hear a thousand times over.

Collapse
 
robert_vermaas_b66b52da4 profile image
Robert Ver Maas • Edited

Enough has been written about education that I won't add to it, but don't be cynical of it either. There be marketing expertise behind what's on offer, so the occasional short-course needs to be looked at very carefully, by going through the contents list and determining if you can't find the same information somewhere anyway. And sometimes places like Udemy or O'Reilly can be plain convenient in timesaving against searching, even if it does not offer any impressive certificate. The big warning is that the marketers play/prey upon newcomers responding to the allure of a (false) image of someone sipping a latte in a trendy coffeeshop with high$ e-bike parked nonchalantly nearby etc. etc. that you will join at the close of their course.

Yeah, sure Ma - every day of the week.

Anyway, what I really want to offer is that computing is coming out of infancy as an industry, and the wide open frontiers that once were are now relatively fully serviced by software in some way. All you may end up doing is finding work at catching-up with compatibility to new standards, which is becoming a drag on the CEO's that will pay you. They no longer see you as their charioteer to the wide open unconquered plains, but a necessary evil in what once worked, but somehow no longer does through planned obsolescence, of which you may be a continuance. Not the nice welcoming interview promised by education.

My big advice is to become a people-person, not a tech-head. I'm finding work at the micro level, writing custom-apps for situations in rural industries that are side-loaded to whoever needs it to solve his or her immediate problem. But I don't let my app do all the work, I construct them in such a way that the people themselves increase as a result. even if it is to the point they don't really need them, but find it a convenience from an ISO 9001 series record-keeping point of view. ( There be devilry in that phrase you will find out - I won't talk about indemnities brokers, which are a whole 'nother universe of evil if you get to have to need them).

Qualifications are looked at by some employers - if they're caught up in that same evil - but largely it's referral from one client to another. Can you do the work? Can you perceive the problem from the PERSON who is faced with it's point of view? Referral from your last satisfied customer is better'n any hi-falutin' donger from academia, but that's just me.

I'm the sort of person that lines up behind the only open checkout I'm in at the large hardware chain, even though there's new groovy speedy techno-savvy self-serve checkout. I want to give someone a job. If they're broke, then the money I save from the chain not having to employ them is devalued more than if I just handed it over. There's a b-i-g frontier waiting to be challenged, where tech-heads seduced CEO's with computing power, but falsely so.

Become a people person.

Collapse
 
cleancodestudio profile image
Clean Code Studio

Golden advice:

"Become a people person"

This is invaluable. No matter your industry, raising your eq over your iq will always be beneficial to your career (and life). Love this advice.

"Computing is coming out of infancy as an industry"

Also love this quote, we're learning new things every day as an industry. One of the reasons I feel college degree's can be more harmful than helfpful in computer science is because the cirriculum is always behind the current era of technologies in our industry.

Thanks for your comment!

Collapse
 
johnt_f807e8f581 profile image
JohnT

I’d recommend picking a niche and staying focused on it.

Ex: You want to do reactive front end.

  1. Learn some JavaScript
  2. Pick Vue, React, or Angular
  3. Stick to the framework you chose for a while
Collapse
 
cleancodestudio profile image
Clean Code Studio

Great advice JohnT! I love the big a niche and then "Staying focused" on it. For new devs that's huge

Collapse
 
johnt_f807e8f581 profile image
JohnT

It’s a big one! Thanks for continually great content btw, your JavaScript series is A+. 10/10 recommend

Thread Thread
 
cleancodestudio profile image
Clean Code Studio

Thank you sir, it's a series I've invested a lot of time and effort into blogging on - hoping to create a youtube series with a video backing every one of the blog posts in the dev.to javascript series sometime in the near future.

Deeper JavaScript seems to be a topic that people are relating and reacting to, love seeing it!

Collapse
 
digitalcoyote profile image
Curtis Carter

Don't go to college. You'll be thousands of dollars in debt and barely have an understanding of how to actually write code. Colleges teach "Computer Science" not software engineering. There is an overlap, but not enough to make a CS degree worth the cost. Go to a technical school or a boot camp if you don't have the discipline to teach yourself. Even better, find someone to mentor you and do an apprenticeship.

Collapse
 
cleancodestudio profile image
Clean Code Studio

Love the college debt point continually being brought up. College debt, in my opinion, is as close to evil as we have in todays era.

Do you have any additional insights on boot camps or technical schools Curtis? I'm thinking I'll just show this blog post with the comments directly to Stevie (the highschooler who was asing me about the computer science career).

I don't have any personal experience with boot camps or technical schools and would love to have something based on someone's real world experience to show him.

Collapse
 
cleancodestudio profile image
Clean Code Studio

My top tip: Create your LinkedIn & Github right out of the gate.

Then start learning and learn through projects to build up your resume.

Collapse
 
recursivefaults profile image
Ryan Latta

I think I'd echo a few of the same things mentioned here.

  1. Financially its a great choice and the industry is growing so you'll always have opportunity to move around and try stuff.

  2. At its core, the job is problem solving. You use code and tech to solve problems, but you're always looking at, understanding, and solving problems.

  3. The industry is still pretty new so there is lots of new ideas every day about how to do things well, build teams, and all of that. So on the one hand its kind of a new frontier, on the other its a total mess sometimes. Living with a lot of imperfection is part of it.

  4. You don't have to LOVE anything about it. It can be just a job. Don't let people tell you you have to code nights and weekends or love coding or you won't make it.

  5. One of the cooler aspects about software is how you can build something once, and it can be available to millions at the push of a button. You have the ability to solve problems for millions of people almost instantly. That is a pretty cool thing, though day-to-day it doesn't feel like it.

Collapse
 
lukeleber profile image
Luke Leber

Get involved in Open Source. A GitHub profile that proves competence goes leagues further than a 4 year degree.

Collapse
 
cleancodestudio profile image
Clean Code Studio

Agreed! Thanks @lukeleber !

Collapse
 
alexp3y profile image
Alex Perry

Go full crypto. Go full crypto right now and never look back.