learnxinyminutes-docs
CppCoreGuidelines
Our great sponsors
learnxinyminutes-docs | CppCoreGuidelines | |
---|---|---|
226 | 306 | |
11,103 | 41,290 | |
- | 0.8% | |
9.1 | 7.6 | |
4 days ago | 18 days ago | |
JavaScript | Python | |
GNU General Public License v3.0 or later | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
learnxinyminutes-docs
-
Scripts should be written using the project main language
> Learning a new language shouldn't be difficult. Programmers are expected to familiarize themselves with new tech.
I wish any large company agreed with this. I've worked for a company that on boarded every single new engineer to a very niche language (F#) in a few days. Also, everybody I worked with there was amazing. Probably because of that kind of mindset.
Meanwhile google tiptoes around teams adopting kotlin because "oh no, what if other teams touching the code might not be able to read it". Google is supposed to be hiring the brightest but internally is worried the brightest can't review slightly-different-java.
It's shocking how everybody acts like senior engineers might need months to learn a new language. Sure, maybe for some esoteric edge cases, but 5 mins on https://learnxinyminutes.com/ should get you 80% of the way there, and an afternoon looking at big projects or guidelines/examples should you another 18% of the way.
> Sure, maybe for some esoteric edge cases, but 5 mins on https://learnxinyminutes.com/ should get you 80% of the way there, and an afternoon looking at big projects or guidelines/examples should you another 18% of the way.
Not for C++, and even for other languages, it's not the language that's hard, it's the idioms.
Python written by experts can be well-nigh incomprehensible (you can save typing out exactly one line if you use list-comprehensions everywhere!).
Someone who knows Javascript well still needs to know all the nooks and crannies of the popular frameworks.
Java with the most popular frameworks (Spring/Boot/etc) can be impossible for a non-Java programmer to reason about (where's all this fucking magic coming from? Where is it documented? What are the other magic words I can put into comments?)
C# is turning into a C++ wannabe as far as comprehension complexity goes.
Right now, the quickest onboarding I've seen by far are Go codebases.
The knowledge tree required to contribute to a codebase can exists on a Deep axis and a Wide axis. C++ goes Deep and Wide. Go and C are the only projects I've seen that goes neither deep nor wide.
-
100+ FREE Resources Every Web Developer Must Try
Learn x in y minutes: Concise tutorials to learn various programming languages and tools quickly.
- SQL for Data Scientists in 100 Queries
-
New GitHub Copilot Research Finds 'Downward Pressure on Code Quality'
StackOverflow's making their own competing LLM for all this stuff.
IMO, one of the biggest problems with the way people use LLMs right now, is that they're being treated as a single oracle: to know Java, it must be trained on examples of Java.
It would be much better if their language comprehension abilities were kept separated from their knowledge (and there are development efforts in this direction), so in this example it would be trained to be able to be able to read a Java tutorial rather than by actually reading a Java tutorial, so when the overall system is asked to write something in Java, the language model within the system decides to do this by opening https://learnxinyminutes.com and combining the user query with the webpage.
I think this will help make the models more compact, which is a benefit all by itself, but it would also mean that knowledge can be updated much more easily.
Someone would have to actually do this in order to see if those benefits are worth the extra cost of having to load a potentially huge a tutorial into the context window, and likewise the extent to which a more compact training set makes the language comprehension worse.
-
Ask HN: Programming Courses for Experienced Coders?
I'm still partial to LearnXinYMinutes[0]. It's how I learned enough MatLab/Octave in a couple hours to test out of an intro CS course.
Here's their article on Elixir[1]
The project was created and is maintained by Adam Bard, but is open sourced with over 1.7k contributors since 2013
- Lean 4.0.0, first official lean4 release
-
Anyone got good resources for experienced devs that don't know front end?
Very light compared to the other resources people have linked for you, but I love https://learnxinyminutes.com/
-
Any advice on how to learn from programming tutorials, or are there any better ways to learn a new language?
https://learnxinyminutes.com is good when you know how to program but just need a quick look at the syntax and idioms of a new language.
CppCoreGuidelines
- Learn Modern C++
-
Modern C++ Programming Course
You need to talk to Bjarne and Herb...
"C++ Core Guidelines" - https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines
- CLion Nova Explodes onto the C and C++ Development Scene
-
Toward a TypeScript for C++"
In addition to the other comments -
TypeScript deliberately takes a "good enough" approach to improving JavaScript, instead of designing an ideal but incompatible approach. For example, its handling of [function parameter bivariance](https://www.typescriptlang.org/docs/handbook/type-compatibil...) is unsound but works much better with the existing JavaScript ecosystem. By contrast, a more academic functional programming language would guarantee a sound type system but would be a huge shift from JavaScript.
By analogy, Herb Sutter is arguing that something like the [C++ Core Guidelines](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines), with tooling help in this new Cpp2 syntax, can bring real improvements to safety. Something like Rust's borrow checker would bring much stricter guarantees, backed by academic research and careful design, but would be incompatible and a huge adjustment.
-
C++ is everywhere, but noone really talks about it. What are people's thoughts?
Another phenomenal resource is the ISO C++ core guidelines which is essentially a giant list of best practices of newer c++ features. These guidelines were a collaborative effort started by Bjarne Stroustrup who know a bit about c++. There is an entire section about resource management if you're interested in learning more about the newer facilities c++ offers in that regard to avoid the footguns, but there is a ton of other great information in there as well.
Take a look at Effective Modern c++ by Scott Meyers and the ISO c++ core guidelines. These resources are great for learning how to write better, more modern C++. I don't think it would be hard to grasp if you're already familiar with the language, just make sure to actually write some code which makes use of this stuff, otherwise it's easy to forget.
-
What are some C++ specific antipatterns that might be missed by C#/Java devs?
Look to the C++ Core Guidelines. It's not perfect, it has some flaws, including some sabotaging advice apparently adopted for political reasons. But at least it has some C++ authorities (Bjarne and Herb) as authors.
-
How to improve the code quality
Also, tried to follow https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines as much as I could.
-
Rust fact vs. fiction: 5 Insights from Google's Rust journey in 2022
C++: Not memory safe and tons of ceremonial to avoid UB and have actually well defined objects, semantically: for example, rule of five. Needs to follow a huge number of "core guidelines", https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines, many of the most important are not automatically enforceable by tools. No enum types, invisible codepaths everywhere due to exceptions. Stupid textual-inclusion compilation model meaning that you need to manually track which headers should actually be included in a file (in particular, when reviewing changes to that file that may or may not render some header inclusions useless). Namespace system where the namespace is not inferred from the file/package, but explicitly declared in the file, meaning that name collisions are possible (and result in an ill formed program, no diagnostic required. Once had to debug a colleague's ODR violation that made even valgrind segfault... very fun afternoon) and should be watched for in review. No unsafe and anything could be UB, so have to be paranoid about everything that is being done.
What are some alternatives?
learn-x-by-doing-y - ๐ ๏ธ Learn a technology X by doing a project - Search engine of project-based learning
the-road-to-learn-react - ๐The Road to learn React: Your journey to master plain yet pragmatic React.js
materials - Bonus materials, exercises, and example projects for our Python tutorials
You-Dont-Know-JS - A book series on JavaScript. @YDKJS on twitter.
Crafting Interpreters - Repository for the book "Crafting Interpreters"
tour_of_rust - A tour of rust's language features
github-cheat-sheet - A list of cool features of Git and GitHub.
LearnOpenGL - Code repository of all OpenGL chapters from the book and its accompanying website https://learnopengl.com
git-internals-pdf - PDF on Git Internals
Power-Fx - Power Fx low-code programming language
clojure-style-guide - A community coding style guide for the Clojure programming language
too-many-lists - Learn Rust by writing Entirely Too Many linked lists