3,095 karma · joined January 22, 2020
My website and blog: andrewzah.com. I write about programming, language learning, and traveling. I have been studying Korean for ~4 years now.
My code: https://github.com/andrewzah. Currently remotely employed by Open Source Systems.
GPG: D87BD9DCF11BACD6CDB40CB213732FB13E61E0BE
There is no secret. It just takes time and work to get good at an instrument or producing.
edit: clarity
Gee, I'm just shocked that you're having a difficult time making friends. Who wouldn't want to be friends with judgemental folks?
There isn't anything to mention that you don't know already. There is no quick fix. Find a hobby like sports or music etc and meet people through that, or do other sorts of meetups. But the problem here is your attitude, not the people. Don't take your frustrations out on other people, it's not cool.
Except, we're not done.
YAML has multiple footguns like this, which I have to remember, forever. And anyone who works with YAML. It's unintuitive and confusing, and costs space in my brain that I really should be using for more important things.
Not to mention that if you -don't- know about these ahead of time, debugging them can be confusing.
A type system is marginally more work for decreased cognitive load and eliminating stupid, idiotic bugs that nobody should have to waste their time tracking down.
With IDE integration, the cost is pretty much negligible other than learning the syntax, which, c'mon, is not difficult and we're being paid to do it.
There are even tools like Dhall [0] that auto-generate yaml for us.
Zulip, Discourse, Element(formerly Riot) / Matrix all exist and are fairly nice. And of course, IRC. Searching works well for Zulip/Element.
There isn't a standard license that show that someone is proficient in security, or accessibility, or even in how computer hardware or networking work at a basic level.
So all we're doing is diluting the term "engineer", so as to not mean anything.
The only thing the term "software engineer" practically means is: they have a computer. It's meaningless, just a vanity title meant to sound better than "developer".
There is nothing about computer science or programming that is gender specific. It, ideally, should sit around 50-50, ±5%. So yes, it is a problem that it so heavily skews male.
As to why, it's multi-faceted cultural issue, with how our society treats boys and girls starting from birth. In other words, a pipeline issue.
People want to learn the guitar|piano|violin, until they realize the amount of work it takes.
People want to get fit and jacked, until they realize the amount of work it takes.
People want to be a lawyer/doctor/engineer, until they realize the amount of work it takes.
Or they realize that they just don't really like it.
Programming isn't any different. One needs a particular mindset, and a level of patience to deal with debugging. It's not for everyone, and that's fine.
The average software developer doesn't even know much math.
Right now, "software engineer" basically means "has a computer, -perhaps- knows a little bit about what goes on under the hood".
That's why forking exists.
That's the risk of pulling in external libraries from random developers. Unless you're willing to put money where your mouth is, then all you reasonably can do is politely request a fix or for them to merge your PR.
There is no such thing as this "social contract".
I publish software on github with MIT or (A)GPL licenses for various reasons:
* In case someone else has the same issue I did
* In case someone is working on something similar and wants to learn from my code
* As an external backup in addition to my hard drive / private git repo / etc.
* Because I can. (deal with it.)
There is NO expectation or "contract" or anything. People can open issues or politely request things, but getting upset or pushy over F/OSS released on someone else's own terms is just entitlement.
But I do agree that it seems that people jump to use async instead of e.g. threads. I think there should be more literature around what situations work best for threads vs async, etc.
We can talk about how the internet has made things like porn ubiquitous, and how certain games are intensely addicting. But that is a wholly separate discussion.
As if country music never touched upon these sorts of topics. Or books. Or ...
Moral panics come from old people who don't like anything that's different from their youth. "Kids these days!" And in America, especially so if that thing happens to be dominated by black people.
I'm not against skepticism or conspiracy theories, but this one doesn't really make sense. Word usage and dictionary definitions update all the time.
Many people do in fact use the term anti-vaxx(er) to refer to people who are against vaccines and also against regulations around them.
1. People learn more than 1 language. What I'm referring to here is complete beginners who need to learn -how- to program. Once they grok that, it's not difficult to move to other languages, obviously with some exceptions.
2. It's not the job of a -language- to teach everything about programming or networking or computers or various protocols. That's the job of a curriculum.
3. There are way more $major_lang jobs than jobs for D, Clojure, Lisp, Crystal, or any of the other languages that are significantly less used. The sky is the limit for how many languages people want to play around with and learn, once they know enough to start learning other languages by themselves. No recruiter is gonna be like "oh, you learned $major_lang... Even though you likely applied to this role because our stack involves $major_lang and that's a language that you know well..."
4. Help, resources, meetups etc for $major_lang are orders of magnitude more plentiful than for D, etc. Imagine telling a student "no, no, you need to prove yourself by making forum posts for <niche language that I personally like and use> instead of having stackoverflow questions or tutorials to follow" in the case of getting stuck. Of course students should strive to do as much as they can themselves, but you would be surprised to see what beginners get stuck on and just need a gentle push to get going again.
5. Being able to be independent is more engaging than having to constantly pester a teacher or a forum. If a student wants to be a go-getter with e.g. python or lua, there are communities and resources to build games or websites, etc. And those already have had common stumbling block questions answered because they have large communities around them.
For the goal of teaching someone how to program, any language other than the major ones like python, javascript, ruby, c++ strictly make it more difficult for students because of the smaller ecosystem, lesser amount of documentation, and smaller community in general. I have nothing against D or other niche languages, but I'm against picking languages just because I'm familiar with them.
It can be difficult for experienced programmers & power users to remember that there's a sheer amount of information that needs to be learned in. There is no reason to make that more difficult for students.
If you pick something like python, any common beginner problem should have questions answered on stackoverflow, blog posts, etc. With a more boutique language that's not the case. Not to mention the ecosystems are much larger so chances are a library already exists to do something instead of making the beginner do it themselves and overloading them. There will be more tutorials, so people can get unstuck. More documentation around the tooling and just documentation in general exists, and so forth.
---
Of course, you should teach "what you know best", but how hard is it to learn e.g. python (even just for the scope of the course) and just teach that? My favorite languages are Rust and Go, but I'm not going to foist those upon newbies just because I'm more familiar with those than javascript, python, ruby, etc.
The secondary lesson here is that teaching (well) is actually quite difficult. Coming up with a curriculum is hard. Keeping students engaged and unstuck is hard. Knowing how to program doesn't prepare you for any of that.
The largest one is likely Korean.
Also, https://en.wikipedia.org/wiki/Albanian_language#Classificati...
I work primarily from a 13" xps. Given the high-res display + that I can switch desktops easily via i3, it's really a non issue for what I do.
You can also use a dock. For my work laptop, I use the Caldigit TS3+ thunderbolt and it's great.