Skip to main content
6 answers
6
Asked 580 views

What skills are important to become a Computer Programmer?

What languages are most important and does it involve lots of working in teams or is it mostly working by yourself? #computer #programming #computer-engineering #computer-science

+25 Karma if successful
From: You
To: Friend
Subject: Career question for you

6

6 answers


1
Updated
Share a link to this answer
Share a link to this answer

Jade’s Answer

To be a good programmer, you need to have good problem solving skills! If you have an issue/bug: what is the issue, where is the issue, why is the issue happening, how can I fix the issue? Usually you will train to be comfortable with one or two programming language (I started out in school with Java, Python, and Javascript) which generally will easily translate into other languages. Although being an independent programmer is great, you will very frequently be collaborating with others, whether it be other programmers, clients, etc. so collaboration skills are a must.
1
1
Updated
Share a link to this answer
Share a link to this answer

David’s Answer

Warning: long answer. You've struck a nerve with me :-)

Languages don't matter too much besides being prevalent in the areas and projects you want to work on. I do understand why you ask this however! As an undergrad, many of my peers balked that we weren't learning Java (it was all C++), when "that's where the jobs were". Not a single one of us had a problem finding a job, despite the 'dot com crash' that happened right around when we all graduated.

A lot of what you'll do as a computer programmer in your career is going to vary. Most of the time, you won't be writing new, original code from scratch, so you have to learn how to *read* code well in order to maintain and extend it in the ways you'l be asked. Also, having an appreciation for simplicity, and clarity when you do write new code is something that you and your coworkers will benefit from greatly. I deeply appreciate the work of Niklaus Wirth in this area. I'm not sure anyone else has been as productive as he has in choosing good, simple abstractions and building up only "necessary complexity". I recommend spending time trying to understand his methods, even if you don't end up using any of his programming languages or environments.

Reliable software is something that customers will demand, and there's great things to be learned in reading about how systems are built for robustness in Erlang. Some of these principles can be carried over into other programming language environments, but many of them are extremely challenging to re-implement.

All of that said, in my career, I've mainly used C and C++ for the vast majority of it (over 20 years), but that's because I really like the jobs that those languages are typically associated with (embedded systems, operating systems). I've also written code professionally in Fortran (for High Performance Computing - supercomputing). I've shipped code written in Python, Java, Perl, Erlang, Haskell, C# and various other shell scripting languages. Languages I've been learning in my spare time include Rust, Go, and Zig.

These languages probably aren't the right choices for modern web development, for example, if that's where you want to go. (Typescript, HTML, etc seem to be the right choices). If you're wanting to develop for MacOS, iOS or iPad OS, Swift is the modern language to pick, though Objective-C is still here. People do write code for these platforms in "non-native" languages successfully as well however.

Also, you asked about working alone or on teams. This will vary depending on the size of the organization for which you'll work. There's an African proverb that says "If you want to go fast, go alone. If you want to go far, go together". I've found this to be true in any projects I've worked. A person working alone can often appear to be extremely productive, but unless they're one of those people who knows eventually they'll have to share this code with others, it's not clear that the results will be as valuable as those that come from a team setting.

So, I would anticipate having to do both group and individual work, but I think the discipline needed to be successful is the same and more towards the group ethic.

David recommends the following next steps:

Think about what kinds of programming you might be interested in doing. Distributed systems, operating systems, and embedded systems use different tools than web, or apps on devices a lot of the time.
Don't be shy about playing with programming languages. Exposure to different languages and approaches to solving problems will have impacts that are transferrable to different projects, regardless of where you learned them.
1
0
Updated
Share a link to this answer
Share a link to this answer

Eric’s Answer

English may be the most important language. Being able to communicate complex ideas to both technical teammates, non-technical colleagues, and even customers is an important skill. Working by yourself is quite rare, and working in teams allow for more ideas, code reviews, and larger support networks. Improving your ability to speak and write effectively will make you a better software developer.

As far as particular languages it’s hard to tell what is the most useful. A good idea would be to go look through job postings at companies you’d like to work for. You’ll get an idea of what languages you should focus on. That said consider gaining experience in a database SQL language (Postgres or MySQL), a scripting language (Python, Ruby), an object oriented language for backend work (Java, C#, Python) and a frontend language (Javascript).
0
0
Updated
Share a link to this answer
Share a link to this answer

Andrew’s Answer

For me, having an interest in test-driven development is a big plus as testing is traditionally an area that programmers have struggled in. As well, I would encourage you to develop your soft skills as that goes a long way to helping you work with others and progress in your career.
0
0
Updated
Share a link to this answer
Share a link to this answer

Faiza’s Answer

Well, the only skill u need is problem-solving skills cause they help in devising algorithms. There are a lot of online algorithm designing games and maybe if u want to know a little bit about it, u can try playing those and checking how you do. The skills u need for programming can be learned over time and programming gets better just with practice. I started off programming with C++ and I feel like once I learned that properly I could learn any language on my own like python,c, java, etc. Start with any one language but make sure whatever language u choose, u learn it properly and to the best of ur abilities. Cause all the languages are almost the same apart from some syntax changes.
0
0
Updated
Share a link to this answer
Share a link to this answer

Peter’s Answer

others have provide good advice already, here is my take
1) you must love puzzle, computing programming is like solving puzzle, find the pattern, device a scheme and see how you can solve it
2) you must willing to learn new things and accept failures. computer has advance a lot, therefor, without learning new things, you won't stay it long term. you must be willing to accept failures since it is impossible to be perfect but able to face up to mistakes help you not to make the same mistakes
3) understand the parallel with other disciplines. computer programmer is trying to solve a problem using programming language, just like construction workers using hammer and nails to build a house (while the better tool get you productive, but one must understand the basic one 1st)
4) must be logical, computer is built with binary logic where everything is very precise. if you're not logical, you have issues understand computer program. Spock in star trek movie is a good example of one that think logical. If you listen to bach's music, it is so logical and precise, he will make a wonderful programmer in today's world.

hope that help
0