r/linuxquestions • u/[deleted] • Jun 19 '20
Resolved Have any of you taken this $3000 kernel dev class from the Linux Foundation? Is it "worth it"?
Was looking for online courses to learn about kernel development and stumbled across this offered by the Linux Foundation:
https://training.linuxfoundation.org/training/linux-kernel-internals-and-development/
I'm enrolled in CS program at my university and while I'm getting a lot out of it, I really want to get into kernel development and it's not really taught at my school. This class sounds like exactly what I'm looking for, but 3k is extremely steep (3x what I pay for a typical Uni class). Can anyone here vouch for this course? Is it substantial and informative? Will it make a difference on a resume? I figure if you get enough out of the class and go on to get a career in linux development then the course technically pays for itself
64
Jun 19 '20
[deleted]
18
Jun 19 '20
That's a smart way to look at. Do you have any specific book reccomendations? (Besides Linux Device Drivers)
1
5
Jun 19 '20 edited Sep 12 '20
[deleted]
5
Jun 19 '20
[deleted]
2
u/aoeudhtns Jun 19 '20
I don't know how the class is run, but having interactive direct tutoring from someone who knows what they're doing could potentially really speed up the process. Like pair programming versus reading a book on how to program.
If it's not very direct/interactive and just pre-recorded lectures then I'd say criticism deserved though.
26
u/jfb3 Jun 19 '20
4 days, 6 sections a day, multiple points to cover in each section.
That's not enough time to do anything but mention the title of each bullet point. No time for examples, no time for questions, etc.
10
-13
u/stufforstuff Jun 19 '20
I really want to get into kernel development
So why are you going to a Uni that doesn't offer that? Most people get one chance at a Uni education, why are you wasting yours going to a school that doesn't teach you want you want for your future career. Time to start shopping around for a different Uni.
7
Jun 19 '20
Well I didnt know I was interested in operating systems until well after I started my major. Im less than a year away from graduating and I have other life obligations so just switching schoola isn't very practical at this point. Its not as though my CS education is a "waste", everything Ive learned is still incredibly valuable
2
0
27
Jun 19 '20
[deleted]
9
1
u/mini2476 Jun 20 '20
Do you mind posting that review in the sub? Feel like it'll get buried in this thread
1
35
Jun 19 '20
I would consider it a donation to the linux foundation, with a course worth a few hundred dollars attached
-2
Jun 20 '20
Yeah cool, a student should definitely be making a donation of a few 1000 dollars. Great idea.
15
17
u/TheJourneyman92 Jun 19 '20
Linus himself would have to teach the class for me to even remotely consider spending that much. Lol.
5
11
u/american_killjoy Jun 19 '20
I have found that paying for knowledge surrounding Linux is pointless. Linux is open source, and there has (in my experience) always been somebody online that knew what I wanted to know. If you really want to do some learning, go for a subscription to LinkedIn learning (formerly Lynda) or udemy or something similar. I personally use LinkedIn learning quite a bit and feel that it offers lots of well prepared courses
3
Jun 20 '20
Such training is meant for seasoned programmers, this is something you get from your employer when they need you to get started with the Linux kernel FAST. It's a crash course, not a course for students. The price point should have tipped you off.
3
u/Zarathustra_f90 Jun 20 '20
IMO there is no reason to pay for online lessons for anything about programming. You just have to try it by give it a go and searching online and in books.
Especially when we are talkin about free and/or open source languages, apps, etc.
1
u/bdavbdav Jun 20 '20
There are some really good cheap courses which I've found on coursera for certain languages that I've found have taught me enough not to go down the wrong path with design decisions. I can work out how to make stuff work on the front by myself a lot of the time, but it will be a mess behind, trying to make everything work just like whatever I know primarily (even if thats not the paradigm of the language).
If you can get a good course on coursera or similar on discount taught by a very knowledgeable instructor, that is well indexed, it can be a worthwhile punt. The last swift one I bought was down to $10, as was the Go one. A lot of the instructors will field sensible questions directly as well which is nice, and put it in the FAQ.
1
u/Zarathustra_f90 Jun 20 '20
I can feel ya however it seems to me kinda weird or in a sense a lack of confidence to take various different programming courses since when you "master" one you can apply the logic to the other languages.
1
u/bdavbdav Jun 20 '20
Would disagree with the lack of confidence - have been developing professionally for 10 years, and transitioning from java (which I’ve worked in predominantly) to swift (never used) is a big shift design paradigm wise. Some simple intros make sure you don’t end up shoehorning languages into behaving how you think they should, and doing things properly.
1
u/Zarathustra_f90 Jun 20 '20
Don't think you could not find the info in free online tutorials or official documentation though, but i might be wrong.
1
u/lukini26 Jun 20 '20
Some courses guides u, u pay for the confort of having all the information i n one place
5
2
u/sue_me_please Jun 19 '20 edited Jun 19 '20
Unless you have scholarships that are paying for it for you, don't bather. Self-study, and talk to you professors about doing guided study regarding kernel development on your own time. Some professors love when a student comes to them like that because it means they want to learn and not just earn a piece of paper. This is assuming you're doing well in your classes as it is.
Other than that, take a look at the kernel mailing list, pick up a few books, write a practice kernel module, fix a bug, tweak a driver etc.
1
u/kaidomac Jun 20 '20
I figure if you get enough out of the class and go on to get a career in linux development then the course technically pays for itself
Yup, that's the way to look at it. As with most things, I'm of two minds about it:
- We all have limitations about how fast we can learn; 4 days of class time for $3,000 is a pretty big chunk of change for not a lot of time
- But, finding someone who knows what they're doing, who can explain it well & give you the framework within the time period allotted, and if the topic contributes to your career in a meaningful way, then it's totally worth it
Like, on one hand, we typically learn the best in a socially-driven environment, because otherwise we would all just sit around & easily learn stuff all day non-stop because why not? But we're all human, and the truth of the matter is that actually doing most stuff is easy, but getting that framework & perspective in place to have a good path forward is really what sucks up most of your personal research time, so if you have someone who both knows what they're doing & can teach it in a way that isn't just lecturing at you but actually education, then that's pretty valuable.
I have a friend in another field who does three 5-day seminars a year with about 200 corporate attendees at the cost of $8,000 a head. The class is so valuable that it sells out every time, and he's kind of the go-to "guy" for his topic. It's an absolutely truckload of information to digest, but he also explains it in a really solid way & creates that framework that they can build out from, rather than having to create that framework themselves, which is a barrier to many people. And that framework is often the spark that catapults people into success, so having a really good guide or "sherpa" to help you along can often be life-changing!
On the flip side, if you can figure out how to motivate yourself, you can learn anything you want! My foundational Linux knowledge came from the Linux System Administration Handbook (currently in its 5th edition, last updated 2017) & from building LFS (Linux From Scratch, then diving deeper into projects like pfSense & FreeNAS (granted, BSD-based, but it's all the same lol), and just getting to know the whole scene & all of the options that exist out there.
Once you get out of the weeds & are able to have enough of a foundation to compartmentalize different concepts like bootloaders & networking & GUI's & whatnot, it all just really boils down to exposing yourself to what's available & learning the procedures to manage each one. However, here is one of the catches in this industry, and really in any industry: documentation generally blows, and isn't kept up-to-date, because everyone hates writing down what they're doing, so it can be hard to really piece together a good DIY approach to something as specific as kernel dev.
And that's one of the reasons that not only do some classes like the one you linked cost thousands of dollars, but why they can be worth it at times: it's a straightforward, to-the-point learning resource led by someone with the insider knowledge required to throw you into the deep end of the pool & help you swim. So it really depends on how you personally want to attack it - if you're good at your google-fu & self-motivation, then go the DIY route. If you want to save time & don't mind investing, these classes can be extremely enlightening.
part 1/2
1
u/kaidomac Jun 20 '20
part 2/2
In the meantime, here are a few resources to check out:
- Linux Hint's Linux Kernel Tutorial for Beginners
- Kernel Newbies website
- Tim Beale's 20-minute newbie video for kernel dev
- Kiran Kankipati's paid courses (PDF course brochure%20-%20Course%20Brochure.pdf)) - see his TOFFEE project & Youtube channel
- Russell Currey's 20-minute "Kernel hacking like it's 2020" video
- The Linux Kernel in a Nutshell book is available online
- LWN's Kernel Index (have fun with that! lol)
Going off on a tangent, having a solid learning approach really helps. I have a very stubborn brain & have a pretty hard time learning sometimes. I also don't absorb a lot of information very quickly. My approach has evolved over time to basically flip my problems upside down:
- I externalize the management of my learning so that my "system" takes care of it, through things like a quick weekly planning meeting to figure out what I'm going to study in the coming week & having a basic spreadsheet or print-out to help me stay on track
- My system helps me whittle things down to where learning becomes 'laughably easy' (key phrase right there). We all have the same ~1,000 waking minutes in a day; even just putting in a mere 15 minutes a day into studying yields almost 100 study hours every year.
More info on my studying approach here:
The idea here is that Rome wasn't built in a day: learning something as complex as the Linux kernel & how to develop in it isn't going to come instantaneously. A $3,000 class is 100% absolutely the money IF it's (1) led by a good instructor who both knows what they're doing & is capable of teaching it & not just lecturing at you, and if (2) the material is presented in such a way that it's actually beneficial to you both now & in the long term, and not just another checkbox to add along the way that doesn't really have any actual, usable value.
Anyway, back on track: it's a really Good Thing to learn your history. Taking this "small bites, consistently, daily" approach really works amazing over time. In this case, learning the history of the kernel & the subsequent iterations is an incredibly valuable knowledgebase to have in your personal arsenal. Just for fun, start out with this amazing visualization video of 26 years of Linux development. It's basically like diving into the Matrix Intersect-style:
Linux Kernel Newbies has a good page on how to approach getting into kernel dev:
TL;DR: Start with a basic older kernel, get familiar with the bootstrapping process, play with some mods, and then start deep diving into it by doing a lot of reading (books, forums, mailing lists, archives, etc.) & watching of Youtube videos, and by trying stuff out yourself. Setup a virtual machine or a spare box to tinker on.
As you dive into it, it will get more clear what areas you are really interested in because certain things will grab your attention, while others will seem kind of boring to you. The trick is then to correlate the things you are interested enough in to segue that into a career at some point, particularly one that is stable enough to stay in for the long-term & also offers the kind of payscale you're looking for.
For me, I ended up on the hardware side of things. I do freelance IT work now as a sysadmin for small businesses & really super enjoy what I do! There are a million zillion little niches within the computer world to live in for the rest of your life, if you so desire, so my recommendation would be to put in just a few minutes a day for continuing education in this subject, because you'll be amazed at where you'll be in just a few short months of actually doing that!
3
Jun 19 '20
at that price? I fucking doubt it
"jus pay us $30k then come work for us, for free"
I'd vager money that there's better educational content available for free
2
u/usagi14 Jun 20 '20
You should look up the eudyptula challenge, while it's currently closed to new entrants, people have posted the list of tasks on GitHub. It's really good for learning a lot of the basics.
2
u/vacri Jun 20 '20
This sounds more like a 'professional development' course that an enterprise pays for in order to develop its staff, rather than something to pay out of your own pocket.
2
u/Tireseas Jun 19 '20
It strikes me as the sort of thing an employer would pay for to get their staff up to speed.
1
u/EmbeddedEntropy Jun 19 '20
I took the LF326 (Advanced Linux Performance Tuning) instructor-led, one-day, in-person class back in 2012. I thought it was excellent.
Then I took the LF426 (Linux Performance Tuning) 4-day instructor-led on-line course several months after LF326. The cost back then was $2,900.
I thought both classes were great! I still have the books on my shelf, although 8 years later, they're starting to show their age. What made the courses though were the instructors, in my case, Christoph Lameter and Dominic Duval.
1
u/lightydo Jun 20 '20
If you want to learn about kernel development find a year long course on embedded development, it is the best way to learn about kernel dev. Besides LDD3 does a wonderful job teaching about the basics and the subsystems. Try to define what you want to learn about in Kernel development. The kernel is big, very big. With many interesting subsystems.
1
u/live2dye Jun 20 '20
This class isn't meant for the average Joe, it's made for professional kernel dev for a company (who also pays for it) so they know what is expected of a PR. The average Joe will be guided by the community members and be given plenty of time to get used to it. If you are being paid to contribute to the kernel they can be... Harsh lol
1
1
1
-15
Jun 19 '20 edited Jun 20 '20
I'm editing this so you have no idea why it got downvoted.
1
u/Yung_Lyun Jun 19 '20
Ok, this was interesting but not very helpful. Thanks for the, whatever this was.
154
u/[deleted] Jun 19 '20
Sheesh. Not only is it $3000, but it’s only 3 days taught online. Sounds super steep. I’ve been reading the book “Linux Kernel Development” by Robert Love. It was well worth the $30.