News for hackers. Stuff that matters.
Re:Reality has a surprising amount of detail (2017) by combatentropy on Saturday January 11, 2020 @12:36PM (#22021109)
This is why I think people should still learn their job through hands-on apprenticeship, as opposed to a lot of book-learning in the classroom. In fact I think people do still learn their jobs that way. It's just delayed by several years of book-learning that has little return on investment. When you finally land your job, your first few months are when you really start learning enough to become useful.

Disclaimer: I am biased. I am biased toward book learning! In school I made A's and loved book learning.

Clarification: I think book learning is useful. It's just that the order is wrong. Nothing I read in a book sticks until I have tried my hand at it for a few weeks. But an experienced programmer (or plumber for that matter) would probably get even better after reading a few good books.

Re:Reality has a surprising amount of detail (2017) by c3534l on Saturday January 11, 2020 @04:14PM (#22022366)
You need both. It's unfortunate that we separate out the two. It wasn't until the second semester of my third year of my accounting degree that we actually had a project where we would get fake checks we had to enter into the books, fill out, and put in a folder called "mailed." This should have been day 1 and we should have learned what it was we were doing as we were doing it. And this should have prepared us for some sort of internship.

On the other hand, I've met coders who somehow have managed to completely miss very basic CS concepts because they learned the entire thing ad hoc as they needed it and they never realized that they needed Big O, or that they needed to learn how modulo works.

For me, I flunked out of math my entire life until I learned coding and was able to find the answers to "what is this used for?" so I could put it into context. Book learning is good, but it's easier (at least for me) if you have a scaffolding of experience to know where to put each new thing you're learning.

Never neglect either!

Re:Reality has a surprising amount of detail (2017) by ImaCake on Saturday January 11, 2020 @05:20PM (#22022763)
>For me, I flunked out of math my entire life until I learned coding and was able to find the answers to "what is this used for?" so I could put it into context.

When all I used math for was wetlab biology work I found it tedious and annoying. Teaching myself how to code (for data analysis) made me go from disliking maths to loving it. It is easy to see how powerful and beautiful math is now.

Re:Reality has a surprising amount of detail (2017) by cercatrova on Saturday January 11, 2020 @11:46PM (#22024542)
This feels like me with category theory and types. Once I learned an ML (OCaml) I understood the power of types and higher level abstractions. I think people also confuse mathematics with arithmetic. I dislike the latter (much better automated than manually done) and love the former.
Re:Reality has a surprising amount of detail (2017) by semerda on Sunday January 12, 2020 @01:46AM (#22024902)
Ditto. Learning theory without real-life application makes it boring and people forget. Learning application without theory leads to hacks. Often the real-life application happens in the last year when it's too late for some. Maybe the interim assignments should be more real-life examples so students could see application of and be inspired to learn deeper.
Re:Reality has a surprising amount of detail (2017) by nicoburns on Saturday January 11, 2020 @07:04PM (#22023374)
Agreed. A half-and-half course that was half degree, half practical would be pretty ideal. Some of these do exist, but they tend to be small experimental courses that not many people take.

I would: I don't think studying for 3 years upfront makes sense for most people. It would be better to spread learning out more.

Re:Reality has a surprising amount of detail (2017) by bjelkeman-again on Saturday January 11, 2020 @03:00PM (#22021920)
I am, sort of, doing an apprenticeship right now. We are building an indoor aquaponics pilot (290 m2/3100 sqft facility). Aquaponics is growing fish, bacteria and vegetables in a recirculating water based system.

We are doing this “from scratch” (obviously buying pumps, sensors, tanks etc of the shelf). At the same time I am learning aquaculture (growing fish) in a formal two semester course, as well as reading a bunch of books on the subject. We are also planning an insect larvae farm, to use food waste as feed, to partially feed the fish.

It turns out there is a massive amount of things to learn. I am lucky my colleagues are full of different expertise than what I have. The know how to grow plants, build buildings, mechanical engineering, electronics, software, sales, the list goes on. It is somewhat scary how complex everything is, but it is amazing to build the thing with your own hands and see it gradually come to fruition. I am learning so many thins that I can’t learn from a book.

We are building this ourselves to learn by doing, as we don’t want to scale up without significant hands on experience.

Re:Reality has a surprising amount of detail (2017) by buzzkillington on Saturday January 11, 2020 @09:25PM (#22024034)
That sounds incredibly interesting, do you have a site for the project?
Re:Reality has a surprising amount of detail (2017) by bjelkeman-again on Saturday January 11, 2020 @11:51PM (#22024565)
Nothing in English yet, a we so far are aiming at local production with local customers. But this site will have at least partial translations. Working on a build log right now.

http://cirkularodling.se/

Re:Reality has a surprising amount of detail (2017) by adenverd on Sunday January 12, 2020 @12:21AM (#22024639)
Would love to learn more about this. Any resources you can recommend?
Re:Reality has a surprising amount of detail (2017) by bjelkeman-again on Sunday January 12, 2020 @01:15AM (#22024792)
Depends on which level you start.

The FAO small scale aquaponics manual http://www.fao.org/in-action/globefish/publications/details-...

The Aquaponics Farmer (some quibbles, don’t sterilise the water with UV constantly) https://www.amazon.com/Aquaponic-Farmer-Complete-Operating-C...

Commercial Aquaponics systems, Wil Leonard (the book and other resources) http://www.aquaponic.com.au/index.htm

Small scale mealworm farming https://www.mealwormfarming.org/

Re:Reality has a surprising amount of detail (2017) by xorfish on Sunday January 12, 2020 @04:22AM (#22025326)
This is mostly the system we have in Switzerland.

Only around 20% of teens go directly from school to an university. The rest makes a three or four year long apprenticeship, starting at age 15-16. Apprentices get compensated in the range of 500 to 2000 chf per month.

You can combine the apprenticeship with a secondary education that allows you to go to universities of applied science to study engineering, computer science or whatever it is you are interested in.

So most Swiss with a tertiary education got some practical experience before they stated their tertiary education.

Re:Reality has a surprising amount of detail (2017) by feanaro on Saturday January 11, 2020 @12:56PM (#22021241)
> Nothing I read in a book sticks until I have tried my hand at it for a few weeks.

I don't think this is universal, though. Book reading is very natural for me and sticks immediately. In fact, I often find that things I've read today and not understood become magically clear a few days later.

Re:Reality has a surprising amount of detail (2017) by zionic on Saturday January 11, 2020 @01:10PM (#22021328)
I'm the complete opposite. I'm convinced my brain has some kind of overly aggressive internal garbage collection. Knowledge/tools that I haven't derived utility/benefit from get purged. I will say that something I've book-learned in the past can be re-learned more rapidly if I run into that problem in the future, but it's grossly inefficient and of little benefit.
Re:Reality has a surprising amount of detail (2017) by ErikAugust on Saturday January 11, 2020 @02:48PM (#22021864)
I have found this to be true, but I think the key to absorbing things is to figure out how to associate it with benefit/utility.
Re:Reality has a surprising amount of detail (2017) by combatentropy on Saturday January 11, 2020 @01:43PM (#22021521)
I can see it going both ways, depending on how narrowly you define "new thing."

I have never written a program in Go but could probably pick it up through reading, because I have years of experience with other languages. But I pity the poor programmer trying to set up everything for the first time, alone.

Or my first try at home repair was daunting. But now that I have fixed a few simple things I have a better feel for it and might be okay learning the next thing with a book.

I think this is partly why some people like watching Youtube videos and others just want an article.

Re:Reality has a surprising amount of detail (2017) by edflsafoiewq on Saturday January 11, 2020 @03:22PM (#22022045)
Doesn't that mean it doesn't stick immediately?

I've always assumed that's because you're sort of mulling it over in the back of your head.

Re:Reality has a surprising amount of detail (2017) by feanaro on Monday January 13, 2020 @05:50AM (#22033358)
If I understood it the first time, it usually sticks very well. I'm refraining from saying completely and always because it's obviously not an absolute.

What I meant with that last sentence was that even for material I did not understand well (because it seemed to go over my head), I usually still finish reading the material, trying to absorb a very handwavey gist or general structure of the idea, avoiding the need for closure and leaving large chunks unclear. Then, after several days, I often find that I now almost magically understand it because it just clicked without me even being aware of it.

Re:Reality has a surprising amount of detail (2017) by mgoetzke on Monday January 13, 2020 @03:47AM (#22032857)
It is highly dependent on the person (and book) indeed. I always preferred book reading and learning like that. Carefully thinking it through and then working on it. Worked well so far.

But over time (especially reading material from my kids classes) I see a lot of tiny mistakes, left out information, or imprecise statements which make me wonder whether I just did not see that before or quality of school books etc did degrade.

Re:Reality has a surprising amount of detail (2017) by grawprog on Saturday January 11, 2020 @03:13PM (#22021993)
I've found I need both myself. I learn best when I read something and then shortly after get practical practice using what I just read. I find i'll forget little details of what I read if I don't use it right away, but they'll stick if I do something with it right away.
Re:Reality has a surprising amount of detail (2017) by feanaro on Monday January 13, 2020 @05:52AM (#22033368)
I agree, I've come to appreciate the practical aspects too and feel like I'm now using them synergistically. I'd still say theoretical reading is my primary learning mode.
Re:Reality has a surprising amount of detail (2017) by dathinab on Saturday January 11, 2020 @12:57PM (#22021253)
I see this wrt. Software Development all the time. There are Tons of Online Curses, Books and other self learning material but:

1. Completely self learned people are more often prone to develop some bad habits or worse have some subtil but fundamental misunderstandings which are hard to get out of them. (in my experience)

2. Often just a view month with proper guidance can have much better effects then a year+ of self study or "isolated" experience. The problem most times not the general ideas but the details, wrt. the situations for which there are no clear rules you can "just" apply. And often making a wrong decisions doesn't matter that much and sometimes fall under "programming style", but there are hundreds of such small decisions and making many somewhat suboptimal decisions can easily pill up and cause serious problems.

Best example is KISS (Keep it Stupid Simple). Seems easy right, but what does simple mean? Is less code more simple. Are less sanity checks or maybe less validation more simple (due to less additional complexity in them)? Is using less abstractions more simple, even if more abstraction allow you to have code which is harder to get wrong when writing/changing it, _assuming_ you got the abstraction right? Is it more simple to sometimes just repeat yourself, or should you keep strictly to DRY? Is it more simple to sometimes explicitly write out type which would be inferred anyway? What about kinda unnecessary temporary variables? What if it's like `var valid = ...; if valid { }`? What about splitting functions, is it more simple to have 2 pseudo independent sub-functions you will not reuse or one slightly to large function where everything is in the same place?

The answer is always: It depends on the exact situation.

There is no clear cut definition of simple. The best would probably be based on code readability.

But then is it more readable to have one large function body or to split it into sub-functions which are well named but to which you have to explicitly navigate to "fully" understand all details of that function?

Sure we do have guidelines and they allow you to generally get it right (well ok, if you use some good guidelines, there are many bad ones, too). But there is a limit on how much you can learn from them and the rest needs practice. But many problems only show if you do large projects by yourself _and care to maintain and reflect on them, and come to the right conclusion unbiased by the programming language induced bubble you are in_ which is super time consuming. (So guidance is important, but hardly done as many companies do not plan in any time for that at all).

Re:Reality has a surprising amount of detail (2017) by ericb on Saturday January 11, 2020 @01:25PM (#22021416)
> 1. Completely self learned people are more often prone to develop some bad habits or worse have some subtil but fundamental misunderstandings which are hard to get out of them. (in my experience)

I don't find this is particularly true of self-taught people. People who are raised in bad coding environments like working alone or, project-based consulting shops may have bad habits. Hint: the habits are not taught in school.

Re:Reality has a surprising amount of detail (2017) by TJSomething on Saturday January 11, 2020 @01:40PM (#22021499)
Isn't working alone part of being self-taught?

My school tried to teach good habits. Many of the professors are out of touch with what good habits are though, so they usually teach to books of varying quality or practices specific to how they learned a few decades ago.

Re:Reality has a surprising amount of detail (2017) by ericb on Saturday January 11, 2020 @10:14PM (#22024219)
Yes, but I think there's a stage learning where you learn "this is how I work in a manner that lets me get along with others." There are a lot of ways to gain the knowledge of this stage. One part of it is working on projects that you will maintain for a while--this lets you see the cost of tech debt. Another part of this evolution comes from working with others--you learn where your code falls short, and you learn better conventions.

The right environment helps a programmer evolve through this stage.

In a similar vein, stay at home moms or dads may choose to send their child to daycare a day or two a week to learn how to interact with others. Without these learnings, life, or work, can be more challenging.

Re:Reality has a surprising amount of detail (2017) by dathinab on Saturday January 11, 2020 @01:50PM (#22021571)
Yes, through it might also happen if you are not self thought and even if you work in teams as long as you don't do proper reviewed with time to fix non critical problems in a PR it's still like working alone. Which isn't good.

I do count school and University courses as self thought, just with a sometimes better fundation (but sadly often with a worth one too).

As long as you don't have someone who checks your code or does pair programming it's all self thought just with different sources of input.

Also school/uni projects tend to be not that useful either even if you do pair programming, because the people you pair up with have roughly the same experience like you (most times).

Re:Reality has a surprising amount of detail (2017) by nicoburns on Saturday January 11, 2020 @07:10PM (#22023400)
Not necessarily. Me and a friend both taught ourselves, and made projects together (games, websites, etc). I guess we partly taught each other, but there was no expert or teacher involved.

Besides, self-taught programmers have to work with others as soon as they get their first job.

Re:Reality has a surprising amount of detail (2017) by jacobolus on Saturday January 11, 2020 @02:14PM (#22021709)
I take it you are agreeing with the previous poster that hands-on apprenticeship would be a good alternative to formal study out of books. An apprenticeship (hopefully) implies a good deal of mentorship and guidance.

* * *

Personally I think “schooling” should consist much more of student-directed projects, with scope, difficulty, and autonomy gradually increasing over time.

It’s a real shame that typically the most substantial pieces of work 18-year-olds are expected to complete in school take maybe 10 or 15 hours, and most of the work students do is broken down into atomized and unrelated chunks which individually take <10 minutes with few if any decisions involved.

Re:Reality has a surprising amount of detail (2017) by adaisadais on Saturday January 11, 2020 @02:41PM (#22021829)
Wow I couldn’t agree more! I found myself bored in school and often would skip class to go to my off campus job to make money. I was poor and wanted the short-sighted immediate success of income.

However, looking back I regret not taking classes that actually interested me. My school (like I would presume most) had a rigorous course schedule that one needed to adhere to in order to graduate. I think in taking classes I was actually interested in I would have (and the ones I took in the curriculum that I was interested in I got A’s) done much better overall.

Maybe I should have gone to a liberal arts school? Either way I’ve supplanted my lack of A’s with lots of books. It’s made up a lot of the difference so far!

Re:Reality has a surprising amount of detail (2017) by irjustin on Saturday January 11, 2020 @02:10PM (#22021684)
This is the methodology of Gap Year[0] and ideally filled with some sort of extended internship, which I personally subscribe to even though I didn't do it - simply wish I did.

Theory is definitely fantastic, but not being exposed to the real world took me longer to come to grips with than it probably should have.

I think book-learning has great return on investments when applied critically. The problem is when it's applied dogmatically like it is today. Not everyone needs to go to college - for profit schools are scum. Universities can hardly call themselves impartial, but it still has a place and is useful.

[0] https://en.wikipedia.org/wiki/Gap_year

Re:Reality has a surprising amount of detail (2017) by harikb on Saturday January 11, 2020 @09:16PM (#22023990)
While I agree in theory, you are grossly underestimating the amount racism and other forms of phobia that still exists among humans. When “apprenticeship” was the only way to learn, there was no opportunity for the unfortunate ones. School, granted they do a mediocre job, are at least legislated to be fair, secular, and what have you to the those who are otherwise shunned, poor and unfortunate
Re:Reality has a surprising amount of detail (2017) by awb on Saturday January 11, 2020 @06:37PM (#22023235)
I largely agree that hands on experience is much better than book learning. I hope higher education moves towards this model instead of lectures.

However, in some jobs you do need a basic understanding of terminology and history. But probably 6-12 months of concentrated book learning is more than sufficient rather than 4+ years.

Re:Reality has a surprising amount of detail (2017) by reaperducer on Saturday January 11, 2020 @04:43PM (#22022531)
This is why I think people should still learn their job through hands-on apprenticeship

Isn't that what internships are for?