Its really not that hard. Instead of blindly following rules someone else wrote, just read the code. Is it easy to follow? How many details do you have to juggle in your head? How many indented scopes are there? How much state is there? Can you mostly read it from top to bottom, or do you constantly have to jump around the file? If someone unfamiliar with the code (maybe you in 3 months) needs to make a change, how easy would it be for them to overlook some important detail and mess it up?
Best practices usually apply in general, but the smart person who coined them cannot know all possible situations and the parrots who blindly repeat them don't know what they're talking about. Think for yourself, know your tools, and use them effectively to make your code as simple as possible.
I'm not sure why this is even a question, nobody can learn a subject only from a Q&A tool. You learn programming by reading a comprehensive tutorial(s) or book(s) for the foundations. Then you practice on real problems and research the advanced tools and APIs as needed. If you've got more experienced human mentors you go to them for help. You follow blogs / news articles and watch tech conferences. You get enough experience and solve enough hard problems until you know your tools and how to use them effectively.
Google (of which Stack Overflow is only one of many results) is for when you get stuck on some specific problem and need help. Nowadays we just see Stack Overflow in the search results more often than not. I guess SO means nowadays its easier to find answers to specific questions but I don't see how you could actually learn programming from the bottom up that way. It also encourages blind copy and paste solutions without actually understanding the mechanics of the underlying technical problem.
Stack Overflow is very useful, but you need to take it into context like anything else. Many stack overflow answers are still poor quality, outdated, lacking some context, or just outright wrong. Just because its on the internet and a lot of people have looked at it doesn't mean the right person who really knows the subject matter has not only read the answers but cared enough and had enough free time to produce a good detailed answer.
Why do you people continue working at a second rate company like this? Horrible culture, long hours, low pay, and you're getting paid in worthless stock options. All promises and bullshit. You can be sure management will do everything they can to prevent you from cashing in those options and forcing you to stay at the company for as long as possible.
Guys who behave this way are the insecure loser types who are desperate, thirsty, socially incapable, selfish, lacking empathy, unable to be attractive to a woman, and unable get laid. If any of this describes you then pay attention.
Get off your computer and learn some social skills. Google for advice on dating, social skills, style / how to dress, seduction, and most importantly how to get over your insecurities and psychological issues. There are tons of great resources on all of these subjects for men. Become an actual player women love to be around instead of an anti-social loser they despise.
We can talk about "the industry" and all this non-sense forever. The ugly truth is that thirsty men harassing women is as old as the hills. The more sexually repressed a culture or particular sub-group is (read: socially awkward computer geeks), the more this shit goes on. It takes tremendous courage and effort to transform yourself for the better if you weren't lucky enough to be naturally gifted in these areas. It can be done, but most will be too cowardly and too lazy to do it. Therefore, unfortunately I see no end to this problem any time soon.
White American kids don't want these jobs. "We're a nice white family and our kids deserve to go to college". Especially for people coming from marginal backgrounds, sending your kids to college is seen as an achievement and part of the American Dream. High class successful people go to college and low class losers go to work out of high school. Those dirty jobs are for "other" people, not us.
How many of your friends would be happy if their kids became an electrician, plumber, fire fighter, or police officer? These jobs can pay well but nobody wants to do them. You don't need an expensive college degree either, just vocational training. Thats much better than your starbucks barista with 60k student loan debt on her photography degree.
Not everyone needs to go to college. In fact I think it would be better if we killed the stigma against the trades and integrated vocational paths with public high schools. College is academia, and its only relevant if you're going into the sciences or some other highly technical skilled arena or the arts. Sorry but not all of your children are special and gifted.
To many kids going to college, getting expensive useless degrees, and then having little job prospects and a load of student debt. Not to mention the increased demand these people bring inflates college tuition for everyone else.
So what if you got socially rejected in younger years? That's no excuse for anything and it's time to grow up. Social skills are just that.. a skill. Skills can be acquired through training and practice. I know because I went through all of this personally. A lot of nerds never try because they are too scared of other people and have low self esteem. Social value is an illusion, one you can craft if you know how. The first step is stop being selfishly always inside your own head and actually listen to the other person.
Not all of us were naturals or were taught this by our parents. But now we are adults and there are a lot of resources out there about social skills in work, life, and dating. Try it, and you and your new beautiful wife might find your career success going beyond anything you could have imagined. Not because you became a better programmer, but because you made connections and knew the right people.
> I know because I went through all of this personally.
Apologies for a bit of a rant. It's not targeted at you specifically, but the above statement prompted it.
I'd just like to say that some of the most un-empathic people I know use such statements as an excuse to judge others rather than understand them (let alone empathize).
I've met more than once person who worked themselves up from poverty and because they could, everyone can and should, and those who don't are clearly just not trying hard enough.
The same goes for quite a few people who grew up with shitty parents, mental health issues, religion, and so on.
Now to some degree I get that; plenty of people are just excited about their solution to their problem and just mistakenly believe that if only others would do as they did, they'd be happier. In my church-going years we called these people 'recent converts'.
But quite often there's more than just a little condescension to it, and I really, really dislike that.
I've been privileged in many ways, and I try to be aware of that. But I've also had it hard in many ways, and the most hurtful and unproductive comments were of the 'just do <x>, it worked for me' or even the usually-only-implied "you're just not trying hard enough" variety.
These kinds of statements were particularly painful if the person who said them actually had experienced similar problems, because it would give their words more weight, more legitimacy, and it would make my problem something to feel ashamed about because clearly I'm just not trying hard enough; surely they would know.
The thing is, even if it's true, it doesn't help other than make those who make these statements feel good about themselves.
I just wanted to say that. I do agree with the gist of you comment. Learning social skills has been extremely beneficial to me, and much of that didn't come naturally! And I wish there was a class for that for those who somehow haven't learned these things, because that sucks.
Best practices usually apply in general, but the smart person who coined them cannot know all possible situations and the parrots who blindly repeat them don't know what they're talking about. Think for yourself, know your tools, and use them effectively to make your code as simple as possible.