Programmer Full Stack

0 views
Skip to first unread message

Holly Coffell

unread,
Aug 3, 2024, 5:25:57 PM8/3/24
to obgakinre

Y'see, I never did internships in college, so this was the next best thing for me. I've leveraged Stack Overflow to great success in my job searches*, and I feel like the time I put into this site has paid off for me.

Now I get what you're saying; there's a lot of people painting the bikeshed, and lordy, am I ever experiencing that with a recent question of mine, but in frankness, that's really up to the individual contributor, and there's not a lot we can do about that. If an individual wants to spend the better part of their days answering stupid easy questions, they're more than entitled to do so, but I would hope that any future employer would be able to call them out on their actual skill level. Or, it could just be their hobby, and I don't see much rationale to take that away from them.

But above all, I answer questions here still because I rather enjoy it. I tutor others in my spare time, and having the ability to provide some kind of knowledge to someone else actually makes me quite happy. I certainly hope the kinds of questions I'm answering aren't all that easily Googleable - and they may have been in the past but I believe I've broken that habit now - but I also like to think that the answers I leave here have actually taught someone something.

You may think they're easily Google-able, but that isn't often the case. A common problem when getting started is knowing what to look for. Without a vocabulary around building software, it's hard to know how to get started.

For instance, I'm pretty sure it wasn't until I was learning my second or third programming language until I first heard the word "concatenate". Now if I want to learn a new language, I know to search for, "[some language] Concatenate Operator". As someone new to programming though, they're likely to search for something like, "put the text on the screen with other text in [some language]", which of course is going to yield completely useless results.

Another common problem is understanding the layers and how pieces go together. After you've built a few things, you begin to understand common patterns in architecture and can know roughly how you want to build something before you even know the language or framework you're about to work with. Someone new has to learn all of this at the same time, so they often confuse things. (Just look at how many web dev questions there are around people trying to figure out why their PHP code can't be used client-side to handle button clicks.) When you come across a question that seems high level, a proper answer is to explain the levels in things to allow them to get started and ask more specific questions.

Finally, new folks often don't know how to ask questions. Building applications is all about figuring things out... and if you can't work through a problem, you're not going to be a good developer. Asking the correct questions (whether of yourself, or of others) is part of working through a problem. If you come across a particularly bad question, by all means vote to close it but add an explanation as to why so that they have some recourse.

It is important for more experienced folks to help boost the community. This is a community after all, and those we help will no doubt be those who will be working on our teams in the coming years. We are all part of a continuum of folks... some are retiring, others are starting. If we don't invest time into the new generations, what will happen?

First off, it doesn't take that much time to help someone. What I do is when I find an answer on Stack Overflow, I go and answer at least 2 or 3 questions. Often times, I'm already out-of-the-zone because I'm stuck on a problem, so spending

I have a very busy day job, and I also have a mountain of side work to do that I get to when I can. But it's not just about clock-on-the-wall time. You make it sound like if I had a few more seconds in the day, I could type more or something. Sorry, but unless you're regurgitating the same stuff over and over again, your creative hours are far more important... and you'll find that you only get a couple of those hours a day anyway.

I find your viewpoint incredibly selfish... but let's go with it. You shouldn't discount the opportunities you get by participating in a community like Stack Overflow. Every job (day job or otherwise) I've had in the last 6 years was due to my participation on Stack Overflow. I once got a job because I answered a basic PHP question in a well-explained way for the CEO of a company. I had no idea he was some CEO, and frankly I wouldn't have cared anyway. But, he liked my answer and had his developer recruiters follow up with me. My current day job, the company was looking for a specific combination of skills, and my name came up for that combination and my answers were acceptable. For my own side business, I mostly do work in a specific area that interests me a great deal. I've made it a point to answer every single question in this domain on Stack Overflow. (Usually, I have the best answer. If I don't know the answer... I really should, so I work to figure it out and then I write a good answer.) This has worked out very well for me, as folks with larger needs that don't fit in a Stack Overflow question will contact me directly. If I think what they're asking could go on Stack Overflow, I ask them to post there and I answer there... so the whole community can benefit. If they're not really looking to implement everything themselves, then they hire me to do it.

While I'd agree that earning enough money is important and a pretty key motivator for any programmer, if you happen to have a job that pays just enough for you to not have to worry about it much, your perspective on what's worth time can change a bit.

I had a series of pretty not-so-nice jobs during the time that I joined SO, but they always paid just enough that I didn't have to worry about money too often. I had about an hour to kill every day that would have otherwise gone to total waste (probably filling a pool of self-pity).

I wasn't having a confidence crisis or anything, but having my answers peer-reviewed was something new and very satisfying to me when it went well. I kinda got hooked on getting some confirmation that I did have at least some competence and idea of what I was doing.

I thought good answers should wrap up with an optional exercise for the reader, explain the code presented, provide links and phrases folks could use to get deeper into certain topics covered, or just otherwise take advantage of any reasonable opportunity to be more verbose.

I learn systems quickly and I was frustrated with not being able to do more as I saw it. I would rather have just edited some additional paragraphs into the top voted answer than write another more verbose (this was a bit before we had a bunch of conversations regarding how substantive an edit could be before it really changed the voice of a post).

And yeah, sure, rep was nice to show off a bit as the site began to be more popular with developers, but I found the actual privileges to be more brag-worthy in IRC. Answers that anyone could easily review tended to earn more rep, which got me closer to 10k faster.

Self improvement. A very efficient and easy way to pick up a technology or programming language in some capacity (to "get started" so to speak) is to pick easy questions from that technology and research answers for them. It's as much as a self learning experience as it is helping others.

I don't know if I'd call myself a "good programmer," although I do think I'm better than bad, but I mainly just answer questions here because I'm bored. I also comment on, vote on, edit, and/or close questions because I'm bored, and occasionally I do some review because I'm bored. Sure, I like the general idea of supporting a useful resource, and the general idea of helping people, even though I don't actually like most of them that much, but mainly it's just because I'm bored. I try to contribute positively while I'm at it because I'm not a jerk, but really any possible benefits of my contributions are just side effects of the boredom alleviation.

It's pretty basic, but I decided to add it as an answer rather than a comment, because with as many people as there are here, surely it's not just me, and I'm a little surprised no one else mentioned it directly. If this gets me some downvotes because I'm selfish, I guess I deserve that, but I'm just being honest.

I do it for fun, and because helping people out and saving them potentially large amounts of time is satisfying. Plus in helping them I get to steer them in the right direction and ensure that in future they are armed with the correct vocabulary and a solid understanding of the subject matter (which also helps ensure they can google their questions more easily).

...and of course I remember what it was like being new at everything, where things that seemed blatantly obvious the experienced programmers were a dark and mysterious world to me, and finding that one tiny piece of information that everyone seemed to know but no one would tell me was a herculean task.

I never used to be so active on the Stack Overflow answering section. And only today I realized that I waste so much time on social media and if I could stop that and share what I know, it could help someone.

Just after 18 hours, I learned quite a few things for myself. So I would say it's definitely good to answer some questions on daily basis. Just try to avoid copy pasting the same answer on different questions. I don't think solving different kinds of questions as a waste of time.

I've known employers to look at SO profiles to cross-check applicants. A decent amount of rep and a list of qualified answers to questions can be a good indicator of someones abilities, that can shine beyond a regular CV and portfolio. So there can be a level of self serving behaviour to it, whether it's a conscious decision or not depending on person-to-person.

Personally however, I feel the community on SO represents the general mindset that makes developers who they are - there's a natural desire to acquire and share knowledge. The software ecosystem we live in today wouldn't really be the same if we lived in a walled-off, pay-only learning environment.

c80f0f1006
Reply all
Reply to author
Forward
0 new messages