9 ms·
No offense to the author here ... but I need to vent some personal frustration. Every tutorial goes through these exact same motions for learning a new language
by whalesalad 6y ago
No offense to the author here ... but I need to vent some personal frustration. Every tutorial goes through these exact same motions for learning a new language. It sucks! Programmers can figure out what a variable is, or how to use an array or a map. Those things really don't change a whole lot between languages. What about how to import code from different modules? Best practices for organizing code? How your language differs from its competitors as far as usage. Testing practices (which often influence how your code is written), etc...
Learning Elixir was tough for me until I found Dave Thomas' "Elixir for Programmers" where he skipped all of the basic stuff that every programmer is assumed to know and went right to what makes Elixir unique and how to leverage it correctly. (https://codestool.coding-gnome.com/courses/elixir-for-programmers https://codestool.coding-gnome.com/courses/elixir-for-progra...)
I have been hunting for the same thing for the Go language for years because frankly I haven't been able to grok the appeal. I am hoping to find a 'Go for Programmers' one day. I asked on Reddit a while back and was pretty much handed the "what are variables" document.
- url00 6y agoThis 100x. If you find it please share with the rest of us!
- nickelcitymario 6y ago> How your language differs from its competitors as far as usage. Yes! I'm always tempted to ask "How is this different or better than XYZ lang?" I don't have the time/inclination to learn every new fangled language that comes by, so it would be nice to have an easy way to understand what scenarios any given language is best suited for. For example, every time I read about Go, I'm left wondering: How is this better than C or Java? Presumably it's better in some ways I'm not perceiving, otherwise why would it be built and used?
- dpc_pw 6y agoSeconded. Especially for Go, because it's mostly a lowest common denominator of language features it's not hard to write the code itself. The problem is that the module system is different and had plenty of changes along the years, What I would really like is an up to date "learn how to handle Go project in 30 minutes" tutorial (initialize new project with all best practices, add modules, publish, fork&clone&submit&pr including 3rd party submodules, test, CI, profile, debug).
- konart 6y ago>What I would really like is an up to date "learn how to handle Go project in 30 minutes" 1. git init 2. git remote add %something% 3. go mod init %name_of_your_module% (where in most common case name is your repo address without the https part) 4. https://github.com/golang-standards/project-layout https://github.com/golang-standards/project-layout - this repo has the default project structure. Each subfolder has README that describes the purpose of the folder 5. go get -u github.com/gin-gonic/gin to add gin (web lib) for your project. Same for any other package. The will be added to your go.mod and go.sum files 5.1 import "github.com/gin-gonic/gin" in your code to use gin 5.2 package may have more than one major version (tag). If you want to use package at latest tag 2 - you add '/v2' when you 'go get' the package (i.e. go get -u github.com/gin-gonic/gin/v2) 6. git commit && git push to publish 7. Not sure what to you mean by 'fork&clone&submit&pr including 3rd party submodules'. You may use vendoring but in most cases you don't need it as you have your dependencies in your go.mod && go.sum files. You may want to read more about vendoring and gomodproxy though. 8. Testing is pretty easy but I guess you want and article about best practices? I won't post any link as I find the topic as too controversial regardless of the language\stack 9. CI - not sure that does this have to do with the language 10. haven't done much profiling or debugging to fill you in.
- hactually 6y agoDamn. > https://github.com/golang-standards/project-layout https://github.com/golang-standards/project-layout I was almost with you but please don't share that repo. It's a terrible layout and the docs aren't accurate. The issues are full of Go community folk saying it's misleading and looks official but isn't.
- phernandez 6y agoI have had this issue with my current golang projects. I haven't found any clear standard for project layout. We have a bunch of microservices with grpc api endpoints, and some which are event driven. Has anyone found a better resource? As it is, even our internal projects are fairly inconsistent in their project structure, which is a bit annoying.
- codenlearn 6y agoOne resource that atleast comes close to what you are talking about is the information at go101.org, not sure if you have seen this before. Especially the section on Go Type System and Concurrent Programming is really very good and they focus on how to leverage the feature correctly for the most part. Hopefully you like it https://go101.org/article/101.html https://go101.org/article/101.html
- moksly 6y ago99% of the “learn programming language” literature is written by people who likely couldn’t do your job because they haven’t ever been programming. This is why languages need good documentation. It seems like it’s a booming industry though. I mean, there are entire sites like udemy where amateurs teach amateurs things they’ll never use in a real job, and that place, and others like it, seems to be doing just fine. Hell, every PACKT book ever written was worth more as blank paper. Why do I care? I’m an external examiner, sometimes I need to read some of these god awful books to see what students are expected to know. I’m not sure why professors ever stray from the true CS classics, but they unfortunately do. Especially at the academy level.
- higerordermap 6y ago> I’m an external examiner > sometimes I need to read some of these god awful books to see what students are expected to know. LoL Here in India every kid de-facto refers to few content farm websites and while they are not outright wrong, there will always be subtle errors, as the content is contributed by other students only. And books - the textbooks are so unpopular and not even available on libgen. Day by day, academia seems more like a drug cartel.
- digianarchist 6y agoPackt books are woefully bad. What’s their business model? Print on demand?
- type0 6y agoI wondered that to, they don't even correct simple spelling mistakes
- cultofmetatron 6y agohaha its worse than you realize. I was in a cafe in jakarta and I noticed this guy was giving another guy lessons in php. We ended up talking after and I mentioned I use vue. He wanted me to teach him how to use vue so that he could run a workshop where he teaches vue! I feel like there's something a bit off about charging money teaching a skill that I haven't personally used extensively in a professional context. I guess others feel differently
- dinkleberg 6y agoThat elixir course looks fantastic, thanks for linking it.
- echlebek 6y agoCompetent programmers can learn Go directly from the spec https://golang.org/ref/spec https://golang.org/ref/spec, the playground https://play.golang.org/ https://play.golang.org/, and the standard library docs https://golang.org/pkg/ https://golang.org/pkg/.
- 8589934591 6y agoIt would be nice to have a collection of resources for each language for whatever you have mentioned above. It'd be very helpful to just deep dive and learn any language than focusing on declaring variables and for loops.
- whalesalad 6y agoA hacker wiki of sorts. It’s a great idea.
- joshspankit 6y agoWould you be up for venting that frustration in to a git repo and setting the tone by making public exactly that type of thing for the languages you do know? Asking for a friend
- whalesalad 6y agoYou have presented an interesting challenge. I am going to chew on this and see what can be done. Good question.