Hello dear readers and subscribers.
Several days ago my reputation on StackOverflow (SO) site surpassed my reputation on Electrical Engineering Stack Exchange (EESE). For me, it was an important moment – I’ve been waiting for it for several years.
I know it sounds silly, but let me explain.
How I became a software developer:
I did not start my career in hi-tech sector as a software developer. My first position in the industry was ASIC logic design and integration engineer at Intel corporation. In other words, I designed microchips.
During this period I discovered SO and EESE. Initially, I used these sites just to get help with my day-to-day job, but after a while I realized that I can contribute too. Back then, my personal and professional interests where much more aligned with EESE community, therefore it was EESE that became the primary platform where I contributed.
At some point in time there was a major change in my interests and I decided to become a software developer.
Gradually, my activity on EESE decreased, but, at the same time, I became very engaged in SO community. It was back then that I had this thought that only after my SO reputation surpasses my EESE reputation will I become a true software engineer. This is probably a ridiculous criteria, but it is the one that I liked to have.
Importance of StackOverflow reputation:
You might be wondering now why I associate any importance with SO or EESE reputation to begin with. Do these numbers provide any kind of indication about the person who earned them? That’s a very good and interesting question, but, before I answer it, you need to understand what I mean when I say “software engineer”.
In my vocabulary, I distinguish between two groups of software developers: programmers and software engineers.
In my opinion, it is the understanding of fundamental topics and professional self-discipline that turn programmers, who are individuals which are capable of writing code, into software engineers. Both of these treats are mandatory and having just one of them is not sufficient.
For example, even brilliant programmers who build products for multi-billion businesses, but adopt “move quickly and break things” ideology, don’t deserve to be called software engineers in my opinion. These programmers would not be able to work on mission critical and life-sustaining systems. It is only in the industry where businesses don’t bear much responsibility for product flaws, and costs of quality defects are negligible, that such programmers can flourish.
On the other hand, even the most self-disciplined programmer can’t become software engineer until he or she develops understanding of software engineering fundamentals.
Back to SO reputation. Is it correlated in any way with either of the above treats of software engineers?
In the most general sense, I would say that there is no such correlation – programmers can have very high reputations on SO, but still be “sloppy”, or lack basic understanding of software engineering fundamentals.
In my case, however, it is a bit different because the main reason I’m active on SO (and the main reason I was active on EESE in the past) is self-education.
Don’t get me wrong – I do like to help others. However, I rarely answer questions that are of no interest to me.
It is when I find a challenging and interesting question which I can’t answer right away that I get excited. When this happens, I do research in order to provide the most detailed answer possible. Sometimes it involves learning completely new ideas. Other times it requires me to put my intuitive understanding of the topic into human readable text.
This way I can help others, and become better myself.
In addition to self-education benefit, presence of other community members on SO ensures that my ideas are being challenged. This puts kind of a professional mirror in front of me and reduces the risk of becoming the so-called Expert Beginner.
[I never understand developers who get offended by professional feedback, regardless of its form. In my opinion, when someone invests time into analyzing my ideas and bringing potential fallacies to light – this person makes me a huge favor and I shall be grateful for it. Even if my ideas are being called stupid and demolished completely.]
I’m a software engineer:
So, until very recently, my understanding of electrical engineering, physics and maths, and my impact on electrical engineering community (as indicated by EESE reputation) were higher than my understanding of software engineering and the impact on the community of software developers (as indicated by SO reputation). Not anymore.
Now I’m officially a software engineer and my main audience consists of software developers (both software engineers and programmers who want to become software engineers).
In order to celebrate this event, I decided to share my most interesting and useful contributions across all Stack Exchange platforms. The links will be aggregated into several content groups.
Some of the links will require specialized technical knowledge in order to be understood (e.g. solid state physics), therefore there is a chance that some of the below content will seem like gibberish. Therefore, if you followed a non-software related link and found the content to be good – please share your experience in the comments section. This will allow other readers to know which of these links are worth reading first.
Android development links:
Why does AOSP add new APIs to support libraries without adding them to SDK?
Difference between the main thread and UI thread
Which design patterns are used on Android?
MVP Android – How many presenters?
EventBus vs Callbacks, which to use when?
Release resources in onPause instead of onDestroy
Splitting big classes with Inner classes in Java
Dagger- Should we create each component and module for each Activity/ Fragment
How should I work around the context object for DI and testing?
Electrical engineering links:
Why don’t typical digital multimeters measure inductance?
Integrated circuits links:
Do computers speed up at higher temperatures?
Maximum clock frequency of microprocessors
Is CPU/GPGPU heat dissipation quadratic in clock frequency?
Electromigration, are computers nowadays less durable?
Is there a correspondence between cache size and access latency?
Trying to understand FIFO in hardware context
Semiconductors links:
Why can’t two series-connected diodes act as a BJT?
What is MOSFET gate drive capability and why do I care about it?
Solid State Electronics: Depletion vs Space-Charge region, what’s the difference?
Short Channel Effects and FinFET?
Physics links:
Phase Velocity in case of Electromagnetic Transmission
Uniqueness of the number of degrees of freedom
What happens after the collapse of a wavefunction?
Maths links:
How is digital information encoded/decoded in light or radio waves?