are Manning books any better these days? They always used to rush the most awful poorly edited and planned content to market to be the first ones with a book on $NewTechnology
The Programmer's Brain
61–70 of 104 posts
Re: The Programmer's Brain
#62Interesting that it specifies "speed reading". I think speed reading for code is actually an anti pattern since it is encouraging your biases and guesses instead of actually reading the damn output. If you ever wondered how people ended up programming stochastically and just making random changes I'd say speed reading is part of it
Disagree, I can only speed read. I have dyslexia and I can’t read “normally” I basically read in blocks. My brain does the rest.
Re: The Programmer's Brain
#63Earlier quoted context omitted.
The best code is the code that doesn’t need to be read at all. This takes a lot of skill in abstraction. For example code a “user data cache” with lots of user concerns and people will be reading that code a lot. Code a “generic cache” and test the hell out of it and it’ll never need to be read (or rarely) There will need to be code that deals with users but it can interact with the cache so where business logic ends…
Of course it will have to be read, what makes you think you can guess what people will have to read? This seems such an anti-pattern, instead of writing readable code that lives inside the domain where its used, you make an unnecessary abstraction. This is exactly how redundant complexity gets made and you wind up with 16 abstraction layers where each is used just once and a completely unreadable mess.
While it is important to separate concerns where applicable (might be user related functionality and caching) generalization most of the time just adds complexity.
Re: The Programmer's Brain
#64Earlier quoted context omitted.
The best code is the code that doesn’t need to be read at all. This takes a lot of skill in abstraction. For example code a “user data cache” with lots of user concerns and people will be reading that code a lot. Code a “generic cache” and test the hell out of it and it’ll never need to be read (or rarely) There will need to be code that deals with users but it can interact with the cache so where business logic ends…
Of course it will have to be read, what makes you think you can guess what people will have to read? This seems such an anti-pattern, instead of writing readable code that lives inside the domain where its used, you make an unnecessary abstraction. This is exactly how redundant complexity gets made and you wind up with 16 abstraction layers where each is used just once and a completely unreadable mess.
I am not advocating making “unnecessary” abstractions.
I’m not even advocating abstracting from the get go: sometimes you need to see the messy to appreciate the abstracted.
This is modulo all common sense trade offs!
Re: The Programmer's Brain
#65are Manning books any better these days? They always used to rush the most awful poorly edited and planned content to market to be the first ones with a book on $NewTechnology
I read the first few pages. It was riddled with problems. 1. Section 1.1 shows an APL program "1 2 2 2 2 2 ⊤ n" and says, "The confusion here lies in the fact that you might not know what ⊤ means.". Nope. The confusion is that I don't know what any of the symbols do or how an APL program is structured. I expect this is the case for most readers. 2. There are 3 examples here. The discussions of the examples are not ne…
Re: The Programmer's Brain
#66Earlier quoted context omitted.
Disagree, I can only speed read. I have dyslexia and I can’t read “normally” I basically read in blocks. My brain does the rest.
That can't work well for anything non-trivial to read. Ever tried going through a math book like that? Did it work?
Re: The Programmer's Brain
#67The most important skills i wish someone had taught me when i was a young developer was how to interact with people in all areas of the organization, and how to deal with the politics. I was (as a young person), strongly against really wanting to know about these aspects, and instead wanted to be purely technical, but in the end that will mean more for your career than anything else, unfortunately.
I strongly disagree. In my organisation engineers have higher salaries than "people persons" like managers, product owners etc. Maybe it is something Eastern Europe (Romania) does better. In my country, people become managers when they don't know what to do in life, when they have not mastered any skill in 12 years of mandatory education + higher education. People who can't code at the end of the CS curriculum have three choices basically: HR, PMO or do a Master in a totally unrelated field to increase your employability. Do you really see yourself the "acting" leader, answering to phone calls all day like a secretary and asking people about the status of their tickets? I hope not. A "people person" is easily replaceable, a good engineer is not. When the financial crisis comes and the line is drawn, engineering skills remain. That is not to say that soft skills do not matter, quite the opposite, just don't make it a day job, you will become vulnerable.
Re: The Programmer's Brain
#68See: https://www.se-radio.net/2021/06/episode-462-felienne-on-the...
The author is also a regular host on this show. Highly recommend it.
Re: The Programmer's Brain
#69The most important skills i wish someone had taught me when i was a young developer was how to interact with people in all areas of the organization, and how to deal with the politics. I was (as a young person), strongly against really wanting to know about these aspects, and instead wanted to be purely technical, but in the end that will mean more for your career than anything else, unfortunately.
Not sure i agree with this one. Plenty of places where purely technical people are appreciated, you just have to be willing to move around companies until you find a good fit. That is not to say that you won't interact with other people within the org but politics will be less relevant.
1. The fast growth creates demands for management and "senior dev" positions and since hiring is difficult these positions are often filled from within. This means that those positions will be filled with people who may not be ready for them yet, and who cannot properly control the politics that develop to compensate for that ("Oh person X is difficult? Just ask person Y instead, it'll be fine")
2. The fast advancements (with often come with large monetary rewards) also creates internal competition amongst employees on who will get to be promoted to the newly created position. This can seriously hamstring the company as teams of competing managers subtly sabotage each other.
3. Hiring from the outside is no panacea either, because this means that whoever felt they were "next in line" for a promotion is now faced with a newly minted superior who won't move away themselves in at least the next 18 months or so. This means that, if they want to progress in their career, they need to find another position either in another team within the company or at another company. The first option creates increased internal competition (see point 2), the second option creates increased turnover which costs money and causes loss of institutional knowledge.
4. Finally, just "being a tech company" can give the impression that workplace politics should be absent since "the tech is all that matters". This is untrue, devs are people too and ignoring interpersonal dynamics in favor of technology can be super problematic.
Re: The Programmer's Brain
#70Earlier quoted context omitted.
That can't work well for anything non-trivial to read. Ever tried going through a math book like that? Did it work?
It does, but I will say that I had to learn how to block read math. So I couldn’t read until the 6th grade because of how bad my dyslexia is. I taught myself speed reading before I knew what it was (I called it block reading). I knew that my brain could recognize symbols and words without reading it so I took it to the extreme. I started glance reading; looking at the text and looking away and see what I comprehend.…