So there’s this Things I Don’t Know as of 2018 blog post by Dan Abramov who works on React and while I probably am, as a queer neurodivergent trans woman in tech, in a much more difficult (read to some extend more vulnearable, since having my skills questioned in certain situations is an awful experience I tend to make a lot) place then they are, I feel like sharing the things I want to be better at is helpful for newcomers and starters in this field, since there are a lot of narratives picturing a toxic and harmful programming culture (~real~ programmers™️) rather than empowering one. Actually changing this & being honest about ones own skillset instead of pretending to be awesome at everything, admitting that there are fields one does not know that much about, seems to be a good start. But at first, let’s talk about the things I do know at first, so you’ll get a gist about my background.
Things I do know:
- I know a bunch about theoretical computer science & programming languages, having a linguistics background as well.
- I do know a lot about UX/UI Design (remember UX =! UI).
- I am a good Graphics Designer and know my way around those things.
- Natural Language Processing
- I have quite some work experience as a DevOps.
Things I still want to learn things about and be better in:
Functional Programming Languages
- Hands down, I realised myself, that I may know a lot about paradigms and languages influencing Swift, but I haven’t finished a single private Swift project, nor have I worked on such on a production level. I don’t really know if that’ll happen in 2019 either.
Rust in production
- Rust is something I am really passionate about, but on the other hand I have only used Rust for private projects and if I’m completely honest, I am even more skilled in Golang than I am in Rust, which is something I haven’t realised until I started reflecting on this.
Android App Development
- This is a complete unknown ground for me. I did bits of android app development in like 2010, and since I don’t really had Android phones I never got back to it; though the platform isn’t irrelevant at all.
- I never really used NoSQL databases in any project, except setting them up as a part of DevOps/Administrative tasks.
Native GUI Development
- I may be a UX/UI-Designer, but I have never worked on native (read macOS or Windows) software, but I planned getting more into this.
Windows Server Administration
- All I know about this field is knowledge I got out of weird Twitter memes about that stack, I had to turn down a lot of job offers since I wasn’t that comfortable with such server infrastructure.
- This is actually a quite interesting one, since I worked in a project involving Electrical Engineering for the last few month, and while that project was more on a easy side, I feel like there’s still so much stuff I honestly do not know that much about. On a theoretical level I have got okayish skills in this field, I know things like how to design devices and how signal processing works, but most of that on a really theoretical level.
Angular.js, Vue.js, Meteor.js, Ember.js, Backbone.js
Learning new things!
I always tend to say that programming and all things tech aren’t some kind of magic, but something one is able to learn if one puts effort into it. For me, programming is and was always more about solving problems and ethics (as in actually consider what societal impact technologies you develop may have in the end and saying no when that impact turns out to be unethical), rather than about knowing how to use one particular framework or language to solve a problem, those really are just the tools to do this.
Having knowledge gaps doesn’t mean one is not as good as other programmers are, but they’re more a chance, that one is still able to learn interesting things in amazing fields. It’s always disheartening seeing that this is more perceived as a weakness than as a chance. In my last Job I learned the most while solving problems together with my colleagues and it felt good not only exchanging knowledge but also to see, that we were making our way to a finished product quicker while working together. In the end, the job of a developer has more to do with getting payed for solving other peoples problems, than to be proficient in a certain programming language anyways.