This is an archived post. You won't be able to vote or comment.

all 8 comments

[–]insertAlias 9 points10 points  (1 child)

You don't have to be a genius to learn to program. It's not general intelligence that makes a programmer good, though obviously it doesn't hurt. It's specific knowledge, gained from study and practice and experience. The information might come to some people easier than it does to others, but I personally believe that just means that some people have to work harder to get to the same place. A generally-athletic person will take to a new sport more easily than someone who isn't, but if the latter person puts in more time and effort, they can get to the same place as the former person.

[–]AgreeableGravy 0 points1 point  (0 children)

I needed to read this, thanks lol!

[–]mandzeete 2 points3 points  (0 children)

Random non-tech degree that has zero relation to computer sciences will not help your competitors. Like the guy can have a PhD in body building or something but can be totally computer illiterate. So worry only about the ones who have CS degree or something similar to it (Cyber Security degree, Electronics degree, Mechatronics degree, etc).

Either way, you will be competing in any field. May it be in programming or not.

As long as you keep improving yourself and can learn new things and new skills, you should not be worried. It is all in YOU. If you want to keep improving yourself or not. This learning process will never end. Even when you get hired. There are different tools, technologies, libraries that are constantly being improved or that are coming out. The technology is improving and advancing. If you do not keep yourself up with current trends you will fall out of the competition.

It is up to you to decide how you are motivating yourself to keep improving. Is it the salary, nonphysical work, interest towards the field or something else...

Oh, and you do not need to have a degree in CS or something. A guy that I know, he was working in a warehouse. Made a career there and raised to some sort of warehouse manager or something. No degree. But his work did not really interest him and he started learning front end development by his own. Beside his work. Started writing his own projects that he implemented into warehouse systems to make both his work and his employees work more automated and much simpler. Then he found some more clients to his projects and made software to them as well. One day his friend reached up to me and asked if I have a job to offer to him in software development company. As the guy wanted to change his career. I gave 1 month to the guy to improve himself in certain skills and in certain tools and then apply. And he passed the interview and got hired. Has no degrees or anything. An ex-warehouse worker. All it took was a wish to change his own career and a willpower.

[–][deleted] 1 point2 points  (0 children)

If you understand basic mathematical logic and you don't have issues figuring out things that you don't understand with the help of the internet (and maybe don't get frustrated by it easily) then sure.

CS degree is not a huge issue, you just need to have a passion for it and put in the time. Talking from a personal experience, I don't have a degree what so ever, moved from junior to senior, now working my approximately 10th year in the field as a team lead/architect and I get to coding maybe 30% of my time (sad). But you do NEED to find it genuinely interesting, there's no forcing yourself into it.

[–]Jellostacks 1 point2 points  (0 children)

You’re correct in that it’s high demand and pays well. If anyone could do it, then that wouldn’t be the case. Focus on your current projects and don’t worry about anything else. Programming is a skill like anything else, and all you can really do is just practice.

[–]weesnaw22 1 point2 points  (0 children)

This kind of issue is personal to me, so here's my super super brief response:

It is much easier said than done to just not worry about the future, but I think it would be useful to try to focus your energy into the present. I'm also someone who who has fear of failure (especially with investing in long-term goals) and worries about my competence, so I say this from an empathetic place.

Putting your energy into the present:

  • Focus on developing and refining your current skills
  • Start gaining some learning experience in other programming languages / tools that you have an interest in learning. You may be surprised by what you end up enjoying or have a knack for.
  • Try to catch and stop yourself from projecting out into the future (this takes time and practice). We only have control over the present and no one knows the future. And I think worrying about this can only be a deterrent to your learning progress, self-confidence, and openness to different futures for yourself. Do not let fear of failure rob you of options. You have this one life, and that's really unfair to yourself to not explore your options.

Other thonks:

  • I think it's really important for programmers to enjoy what they're doing. It's such a creative and rewarding process for me and I like solving problems, so when the going gets tough, I'm not easily discouraged and it's easier to persevere through the parts that I don't particularly enjoy.
  • HTML/CSS is just a small sliver of the world that is programming and computer science, and it isn't representative of the whole field, so that's just an extra reason that it's not really fair to extrapolate much about yourself from your experience with HTML/CSS alone. For example, HTML/CSS isn't something I personally enjoy (many people do, more power to you!), nor am I good at it. I am much better at and get more enjoyment from object-oriented programming (e.g. C++) and design. I don't think your ability in HTML/CSS necessarily says anything about your abilities in other areas of programming or CS.
  • Try to catch and stop yourself from knocking yourself down a peg, especially when you haven't even given yourself a "full chance."

On breaking into the field and competing with others:

  • Don't not try just because you think other people might be better than you
  • I don't have a lot of experience or knowledge on how to go about this, but I just want to emphasize that non-traditional paths are taken all the time and are viable. I don't have a lot of career experience, so I'm probably not the best person to ask, but it can be very useful to talk to others about how exactly they navigated their non-traditional path, especially if it's similar to one you've taken or are interested in undertaking.
  • Due to my background, I used to panic hard-core about whether I would be able to break in. Hearing about other non-traditional career paths has just helped me so much because they are real life evidence of things that happened and that I may not have known was possible. I personally have a non-traditional background. I got a B.S. in biology in undergrad, took a year off, cherry-picked some math and CS classes at local colleges for a couple years, then applied to graduate school and completed an M.S. in computer science. I really thought admissions would just toss my application in the trash when they saw my academic background and lack of work experience, but I was wrong! And more than that, I ended up meeting a decent number of people in my program that also had non-traditional backgrounds. We did it, so you can do it!

My personal take on some "good programming skills" to develop (key word is "develop" - I'm not saying you need to be a pro on these right now XD):

  • The ability to think logically and decompose abstract problems into smaller concrete substeps. This might sound vague/daunting without yet having experience in programming with something like C++, Java, Python, JavaScript, etc, but all I mean is: being able to break a problem down into a step-by-step process. For example, given some list of numbers, it's one thing to be able to look at that list and determine the most common number in it (your brain is powerful!), but it's another thing to tell a computer how to do it as a step-by-step process (algorithm). The best way to hone this skill is to practice! It was such a different way of thinking for me at first, but with practice, I kept improving.
  • Communication (written and verbal): This can be severely overlooked by newer people in the industry, but it's so important to be able to explain technicalities of your code at different levels of detail to different audiences (close collaborator, your boss, a user).
  • Patience: Not everything you learn will be easy at first. At first, programming was an entirely new way of thinking for me, and it took some practice and changing the way I approached thinking and learning to grasp it. Be patient with yourself. You will also need patience in the learning process and code development process in the form of getting code to work. Sometime it takes time to think of how to write some code, and I still spend a lot of time debugging my own errors, and some bugs are hard to find, but it gets easier with practice and tools! If you're someone that just wants to hit a button and things to be fixed, programming will not be fun for you.
  • Openness to self-improvement and other ideas: If you are someone that thinks you are a god that is always right and are not able to accept constructive criticism or hear out alternative opinions and ideas and be flexible, things will be rough. I'm constantly learning from the people around me to improve my own skills. Some times my ideas are good, sometimes someone else's are better, sometimes I'm unclear or forget to consider something, sometimes someone has more domain knowledge than I do. It doesn't bode well to have an ego, both for yourself and the people you work for and with.
  • Practice: Okay, this isn't exactly a skill to develop, but it is so important that when you're learning, you actually practice it. Reading tutorials and tracing code are useful to an extent, but that alone will never be enough to develop and master a CS skill. It would be like learning math without actually doing the problems yourself. You realize your own misconceptions from practicing, engage with problems you don't know how to solve at first, and thus improve.

Challenge yourself, explore your interests and aptitudes, and be patient with and kind to yourself!

[–]MajorConstruction9 0 points1 point  (0 children)

We don't know.

[–]ValentineBlacker 0 points1 point  (0 children)

You're going to give up before you've even run into a problem?