As a person who has worked as a hardware/electronics technician for many years, I am often wondering what skills do i already have which will be useful in web development. I have worked many jobs in the last 25 years, and built up a pretty good skill set based on making mistakes and learning from them. I’m going to brainstorm a little bit here and see if i can’t find some common ground.
in The 4 Most Important Skills for a Software Developer, Simple Programmer says the four skills of a good software developer are:
- Solving Problems
- Teaching Yourself
- Dealing with People
Based on this list, it seems that the job of a programmer, language skills aside, are somewhat the same as that of a mechanic, or hardware technician who repairs objects.
You have to deal with people. Work as a team and be patient with difficult people around you. This is not easy and probably the hardest part of any job for me. The goal is to get the right message the first time, and that means getting through to people. Different people have different ways of communicating, and it can be tricky to reach an understanding.
Also as a technician you have to always be a good problem solver, whether it is regarding troubleshooting the broken object you are repairing, or get to the bottom of a client issue. The more efficient at solving problems the better you will be at learning new things. This also helps build trust with people when not only are you willing to help, but successful at it.
“If you can solve problems, learn things quickly, name things well and deal with people, you will have a much greater level of success in the long run than you will in specializing in any particular technology.”
The 4 Most Important Skills for a Software Developer
But two of the things on the list are kind of unique to programming:
- Teaching yourself
Teaching Yourself.Because of constant language changes and upgrades, you need to be on top of making sure you attending the right conferences, watching the right videos, reading the latest books. If you don’t keep up with a fast moving internet and software language environment, you’ll get run over. As a technician, i find myself repairing the same things over and over. Rarely do those things alter or get improved. Electronic theory rarely changes.
Naming. I get it, there’s not much worse than having named hundreds of files only to realize you did it wrong, or could have done it better to begin with. It is worth the energy and time to put much thought into how you will build a database or reference objects in your code. I didn’t have to name very many things working on physical objects. Those tools and parts are already engineered and named. In the software developer world, you invent new things all the time and they need to be clearly named.
I believe that with the addition of some technology skills which i am currently working on, i already possess very strongly, the deep core skills that make me pretty good at just about anything. Moving into a new type of work can be hard, but in time i will find that all along, i already had what i needed.
Note: Advice from experienced coders is always appreciated!