Ask HN: Essential skills for any computing professional
There are many sub-areas within the computing world: not only programmers and systems administrators, but web programmers, java programmers, .net programmers, ... , and linux administrators, windows administrators, network administrators, etcetera, etcetera, ...
However, there are skills that are useful for all of them. Skills that no one should go about not knowing.
For example, I see a lot of people not really understanding regular expressions, which I find a very important and transversal skill.
What other skills are there that absolutely everyone in the computing world should know?
14 comments
[ 4.2 ms ] story [ 42.4 ms ] threadThe other one is testing and debugging. Something I'm always trying to do better, personally, but whatever you do, understanding both the process of debugging, but also the though process (edge cases, common issues, breaking problems up into sub problems, etc.) is important.
It's hard to talk about generic skills for computing though. There are many useful skills I have, but I'm not sure they cross domains.
The importance of typing fast is not letting your typing slow you down.
That said, I have been typing more than writing for many years and am now thoroughly incompetent with a pen.
- read/write english
- type (mentioned)
- parts of a computer & what they do, GUI
- exposure to Windows, OSX, and Unix
- networking, tcpip, internet basics
- unicode, i18n, L10n
- use of a web browser
- how to search (google) effectively
- email, office suite, edit photos
- command line
- script repetitive tasks
- make backups, version control
- security basics
- troubleshooting
- planning, testing procedures, i.e. make one change at a time, staging, production
- SDLC
Then move to the requirements for your discipline, such as developer, qa, or admin... which get highly specialized quickly. I could list some but this post would get too long as I'd have at least three lists.
I believe regexes are overused, and wouldn't recommend them to most.
What really makes a difference is basic problem solving and logical reasoning. For just about any specific task google will give you some code samples, but if you can't form a consistent mental model of what the computer will do with that code, you won't be able to use it effectively.
Regular expressions are just an implementation detail.
What to do when other team leaders keep asking you for help. Tell them to ask your manager so he can set the priority of the task.
How to work on multiple projects at the same time. I found it helpful to have a prioritised todo list for each project with a master todo list covering the most urgent or important tasks for all of them.
Curiosity (How does that do that? How can I do that?)
Imagination (I think I can do that better, or cooler, etc... This may be optional, administrators may not need that as much.)
Drive (Not just talking or thinking about stuff but doing it.)
Persistence ("Crash on ME? oh, yeah? Well, how about I do this!")
Patience (if there isn't a way now there will be sooner or later)
Memory (being able to keep things in memory short and long term, really help solve problems.) Reason why a lot of programs are poorly documented is developers keep most of it in memory. Mainly because they work faster that way.