D
D
DEUSSS2020-08-09 12:42:44
IT education
DEUSSS, 2020-08-09 12:42:44

What literature should a novice programmer read?

Good afternoon everyone.
I am a beginner programmer - at the moment I have completed the first course of software engineering at a fairly strong university.
It's time to think about future work and specialization, and I came to the conclusion that I can not imagine myself as a good, professional worker. It seems that I know little and miss time, despite the fact that I have strong teachers and a university. It seems that this is not enough, and more self-study is needed.
In this regard, I began to look for literature to study in my spare time - and I realized for myself that it makes no sense to read books like Knuth about the programming paradigm itself, until I also really learned how to program and swim in terms. Yes, I understand how to solve problems (at least those that are given to me at the university in the laboratory) in terms of algorithms and programming in a certain language, I will compile the file, test it, debug it, evaluate the results, maybe even write unit tests , etc. But this knowledge seems ridiculously insignificant to me. I know how to solve the problem - but how does the computer itself do what I write in code? For me, it's just magic: compiled and here, keep the result. And how it all went inside the computer is a big mystery to me. If someone asks, I'll "float" right away.
In this regard, I decided to start an excursion into computer architecture, starting with Tanenbaum. I read 3 chapters, and realized that I can’t read further - it’s too difficult, there is not enough base.

Therefore, I would like the audience here to recommend where to start studying in order to achieve my goal (a more or less complete understanding of the computer architecture and the processes that take place in it) and also, perhaps, what else a novice programmer should pay attention to and study from the point of view of the theory, instead of "art of programming". I will have time to philosophize that programming is akin to poetry, but first you need to develop a base.

Answer the question

In order to leave comments, you need to log in

4 answer(s)
A
Alexey Ukolov, 2020-08-09
@DEUSSS

Read Petzold's The Code, which has just been republished.

S
Sergey Gornostaev, 2020-08-09
@sergey-gornostaev

What book can you recommend?

D
Denioo, 2020-08-09
@Denioo

I came to the conclusion that I could not imagine myself as a good, professional worker. It seems that I know little and miss time, despite the fact that I have strong teachers and a university. It seems that this is not enough, and more self-study is needed.

God, it's just impostor syndrome, and it's treatable, don't worry. Just more practice in your chosen direction. Then, when you start working, you will also have the same feeling at the beginning, the main thing here is not to think that if you ask something, you will be fired or something else. Take the advice of experienced people and that's it.
At first, when I just started learning programming, I had a hard time understanding everything. But practice and good information that can be found on the Internet put everything in its place. Yes, now there are also blunts, and there are a lot of them, I’m still June, but if they happen, I don’t feel like I did at the beginning, I go and ask more experienced people, but first I google information.
The fact that you take such serious books is good, but ask yourself the question, do you need it? If you are not going to work in these areas, do you need it? Do not listen to all these smart people who say: "Without knowledge of C / C ++ you cannot learn C #", or my favorite "Without knowing how the architecture works or how the computer works, you are nobody", you just need to take them and send them to hell, of all these smart people, only 3-5% will become scientists (or those who really achieve results), the rest will be ordinary nerds, as they are commonly called, and these nerds are very easy to exploit for a smaller salary (in some seedy office where they will be indulge your EGO when applying for a job, and take out brains with this). Of course I can exaggerate but the fact is the fact.
https://www.youtube.com/watch?v=ip66mO6sdf8

S
Saboteur, 2020-08-11
@saboteur_kiev

It's time to think about future work and specialization, and I came to the conclusion that I can not imagine myself as a good, professional worker.

It seems that I know little and miss time, despite the fact that I have strong teachers and a university. It seems that this is not enough, and more self-study is needed.

Certainly not enough. In the university they get higher education, and do not make you a developer. But you don't waste time. The tower itself is not bad. Learn not only development. Lean on English, mathematics.
In this regard, I began to look for literature to study in my spare time.

For a beginner, it is more important to write than to read.
and realized for myself that it makes no sense to read books like Knuth about the programming paradigm itself

There is such.
Yes, I understand how to solve problems (at least those that are given to me at the university in the laboratory) in terms of algorithms and programming in a certain language, I will compile the file, test it, debug it, evaluate the results, maybe even write unit tests , etc. But this knowledge seems ridiculously insignificant to me.

Stuff your hand. Do not only the tasks that you are given, write your own programs for yourself.
You need to solve more complex problems, where debugging will help you overcome complexity. Where tests will test things that are useful to you.
I know how to solve the problem - but how does the computer itself do what I write in code? For me, it's just magic: compiled and here, keep the result. And how it all went inside the computer is a big mystery to me.

It's not that important for a beginner.
But probably the easiest way to dig a little deeper is to spend a month on assembler and write a simple .. well, not helloworld, but some kind of converter, parser. Console, it is not necessary even to work with graphics. Just to understand in practice what registers are, the dimensions of operands, instructions. And immediately understand that in the modern world, given the amount of virtualization, it is enough to know the top to have an idea. It will be necessary more - then read the feature articles.
In this regard, I decided to start an excursion into computer architecture, starting with Tanenbaum. I read 3 chapters, and realized that I can’t read further - it’s too difficult, there is not enough base.

Previously, there was no such software as it is now, and the base was exactly what Tanenbaum wrote. Now everything is more complicated, and what was before is deep under the hood. So yes, it is not necessary for a beginner.
Therefore, I would like the audience here to recommend where to start studying in order to achieve my goal (a more or less complete understanding of the computer architecture and the processes that take place in it)

Processes occur in the operating system, the computer does not have them, so you can read about the architecture of a particular operating system - how a process is created, what it has, how access rights work, how they are inherited.
How to work with libraries, how to write your own and use it.
How to work with network technologies - banal http requests, you can dig the socket later.
and also, perhaps, what else should a novice programmer pay attention to and study from the point of view of theory, and not the "art of programming".

The theory doesn't make much sense. Need practice.
At some simple level, you need to master the following things:
Working with databases - in any program a little more than helloworld there is a lot of data. Most often they are stored in some kind of database. Therefore, something simple needs to be mastered - sql (for example sqlite or mysql), how to work with it with ready-made clients, how to work with it from your program.
How to work with JSON
git - now it is required everywhere.
Again, it is not known what basic things of an advanced user are no longer a problem for you, such as what encodings are, why defragmentation is needed or not needed, how file systems differ.
In what ways can you transfer a file between computers, how to set up a home router. Because the computer has long ceased to be a thing in itself, and without a network it can already be seen infrequently.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question