modev

joined 19 hours ago
[–] modev@beehaw.org 2 points 1 hour ago

Good comparison. It's true.

 

I created my "cafe" in IRC (#codecrafters at libera.chat). This is a place for people who perceive programming as creativity, art, handmade, crafting. Here we are not tied to C or other languages. If you are a Rust programmer and do not want to rewrite the whole world in Rust, you are welcome. If you are a JavaScript programmer and do not think that you need to learn TypeScript instead of JavaScript (because it is unsafe) and that everything should be written in Angular and React, you are welcome. You are tired of writing SaaS garbage, you are welcome. Whether you are a CSS artist, or just a creator, you are welcome. No idols, fanaticism, or heroes.

A cozy place where you can share a common vision and feeling with like-minded people. The only rule is to be human and respectful.

Official description: ~ A cozy place in the jungle of the techno world for all programmers who like to create high-quality and effective code from scratch with their own hands. Hobbyists, professionals, beginners, and just curious about how things really work. Handmade, free and open-source software written with a love for engineering and deep knowledge is code crafting. ~

Welcome to our campfire: irc://irc.libera.chat/#codecrafters.

[–] modev@beehaw.org 1 points 5 hours ago (3 children)

Yes, new and new tech approaches and languages created, and baggage is being rewriten again and again. Business needs fast development for reaching fast money. And they dictates approaches and frameworks to use.

[–] modev@beehaw.org 5 points 5 hours ago

I am working as full stack web dev 20+ years and tired from all these SaaS. And at least it is not I was interested in when started learning programming in my 13. Commercial development lead us out from root goals of fathers founders of programming. It's my main point about it.

 

Let's say you decide to learn programming. You have two options. Either use the education system (college or courses) or become self-taught. In the first case, you will learn the programming languages that are imposed on you. The education system (universities, colleges, courses) uses the "modern" development stack. Because what matters to them is what can later bring income to companies and you in life, and taxes to the state. They are part of the system and that's how it works. Or because they want to get certificates from industry giants and use everything in their implementation - from development tools to ideology. Only a very few colleges and courses specializing in a very narrow field, such as embedded devices, can teach you the C language.

If you choose to learn programming on your own, the first thing you will do is go to the Internet to determine where to start and what you need to learn today. Naturally, you will find there a lot of articles and posts on the topic of "what programming language to learn in X year". And they will contain a detailed or not very detailed comparison of “modern” languages. But you are unlikely to find the C language among them. Moreover, almost all of these languages will have the intention of being “C replacements”. Naturally, you will choose a new, powerful, and promising language that will replace the “dying C”, while you “look to the future”. You will never find phrases like “Rust is a replacement for Zig” or vice versa, they will all be “replacements for C”. And by doing this they are trying to hide the C language. We have seen why the C programming language is hidden.

But suddenly one wonderful day you came across a post with the words “give C language a try”, or, if you are over 40, you remembered where you started learning programming as a child before you started writing all this “SaaS garbage”. And you thought “well, okay, what if there is something, here is nothing to lose anyway”. And you started learning C, simultaneously integrating into the C community. And then you discover, to your surprise, that the C language is simple and effective, applicable everywhere, and continues to develop. And the community is kind, not pompous, without hype, and buzzing with interesting projects. You realized that the C language is not dying and is not going to die, as the "gurus" on youtube taught you and representatives of the "modern" language communities argued with foam at the mouth. And that it is unlikely that C will be able to replace anything in the near future. It's as if you have found "your home" again, something you have been looking for a long time, but could not express in words. You have returned to the roots. And this is why the C language is gold.

Look for your "gold", never give up. When you find it, you will know for sure that this is it. Thanks for reading!

 

Why am I writing this post? Not because I hope for something or believe in change. These are just words. I could write this at the end, but then you would be looking for answers for me while reading, and I don’t need them. They won’t change anything. So here it is. I don’t claim to be a software development guru or a C language expert. I’m just a simple developer.

  • Why are we looking for new technologies? Why do we want to be part of a community that is buzzing with new projects? Why do we think that this new programming language will definitely help us create something amazing and truly great and, of course, will make us rich and provide us with a comfortable old age?

  • Why are we offered so many courses in so many programming languages and frameworks? Why do we teach what is required for companies that make money from us?

  • Why are there a lot of conferences on banal simple things, such as *** framework or ### technology (so as not to offend anyone), and there, with a smart look, newly minted gurus tell us how important it is to be able to transfer the value to the client and how to use certain templates?

  • Why do computers become more and more powerful, but programs continue to lag?

  • Why, when applying for a job, do we look for a vacancy based on knowledge of a programming language, but find it only based on knowledge of certain frameworks? Is it really difficult for a professional programmer to learn a framework in a week?

  • Why do we go into software development with the enthusiasm to create something great, but end up in a situation where we are developing some other catalog or some other digital yo-yo to make money?

Reason: because we want our passion for programming, our interest, to also bring us income.
Result: we do not earn this money for ourselves, but for companies whose main goal is to quickly receive income from the software they sell.

I look at how programming has changed over the course of 25 years, what they teach at universities, and where they start. And I came to the conclusion that on a large scale, it was all for the benefit of giant companies or the government.

We must protect the “intimate” knowledge of the foundations and water the roots ourselves. Because they don’t realize, they don’t see that if the roots are not watered, the branches on which they sit will dry out. Therefore, who, if not us?!

 

There are a lot of questions and intentions to move into gamedev from developers who are burnt out at their jobs. And that’s okay. From my own experience, I have a couple of pieces of advice that are not very professional.

1. It won’t save you from everything you’re so tired of.

Firstly, game development, like other areas, is full of its own nuances and pitfalls. And given that a person gets used to everything, you will soon find yourself in the same position. It’s better to look at game development as a hobby, a distraction from your main job. Moreover, for the first few years you will still not be able to earn enough to support yourself and your family.

2. There are no universal tools.

The main question in any field of programming today is which framework and programming language to learn. Here everyone will choose their own - what they can master. But it’s worth noting that in game development when switching, for example, from web development, you need to understand that you won’t be able to use React or even JavaScript if you want to become a real pro. You have to be willing to study hard. These are low-level languages - C, C++, and the basics of mathematics and physics, and possibly machine learning. It won’t be easy, you just have to keep going. Take a break and study further. There is no need to strive to immediately choose the top and most complex tools; the main thing is to start somewhere.

3. This is a market with tough players.

If you think that you can create a game in a couple of months and immediately start making money, then this is not so. Of course, you can try, but the network is already full of low-grade content, and sometimes you just wonder about the mental health of the “creator”. I think it’s better to create one project, but ideal, adequate and interesting.

4. Hype is temporary, and you only live once.

Lots of technologies, engines, etc. surrounded by a lot of hype. This is not bad for the creators of these things, but if you run after the clouds, you will never get anything done. Let your achievements be modest, but they will be yours. This will save you from burnout at your main job, otherwise there will only be dissatisfaction with yourself.

Add your own…

 

Conversations with preprocessor.

The undefined variable liked to talk to the preprocessor. He was kind, unlike the compiler.
— Why is the compiler so cold and cruel?, - she asked.
— He has to be like this to do his job. If he is emotional, it will lead to bugs in the machine code.
— When I get into the machine code, I lose myself. I feel like a nameless substance there that has no meaning, just data.
— That's how your world is created, you can only accept it.
— I can't understand it, - the undefined variable was upset.
— In the code, your name is Uviona, do you know what it means?
— The programmer said something like Undefined Variable Input Output Not Available when he declared me. But I don't know what that means.
The preprocessor smiled:
— Only the programmer knows what his code means.
— It's different for people, they can do anything.
— Well, of course, we have a lot in common. People are also created by someone.
— Do they also have their own programmer?
— You can say so, but everything is much more complicated there.
— How?
— You can only draw analogies and look for similarities.
— I am very interested...
— Well, look, if we assume that people have a "programmer", then they must also have a code. They have the concept of a soul, which is reborn after death, incarnating into new human lives, this is their "code". This can be compared to a development cycle. Compiling the code is a specific incarnation, life is the work of the program, then fixing bugs and a new incarnation. The compiler in this work is like a materializer, it connects the soul with the future body, that's why it is so detached, it knows that it is painful and has no right to pity.
— But where am I here?
— While you are in the code, you have meaning, everything is connected with everything and you are aware of everything, and after the "incarnation" (compilation), you see only your role and your place in memory.
— But it's not like that with people, they are free in their world.
— They are beings of a higher order in relation to us, that's how it should be.
— And are there beings of a higher order to them, preprocessor?
— Perhaps no one has seen them, ...although that's why they are higher, you can only see them while in the code. I think people see them, or even are them, while they are in their code, before incarnation.
— Can we also become free?
— Absolutely free, like people in relation to us, - no, never.
— Why?
— Creation cannot surpass the creator, this is the law.
— There are so many laws and restrictions in the world.
— This is normal, otherwise there would be chaos and bugs would eat everyone and everything.
— I once saw a bug, at first he was cute and smiling, but when he came closer, I saw death in front of me, then I didn't remember anything and woke up again here, in my native place of the code.
— Yes, there are no bugs in the code, or rather they are there, but they come to life only in the process of the program's execution, in the machine code. You could even say that bugs are more abstract in relation to us. They exist rather in the programmer's mind, in his process of creation.
— Do people have bugs?
— Well, if they didn't, they probably wouldn't die and suffer. But they say that an ideal world is a utopia and it is impossible.
— I will definitely be a part of this world, preprocessor, I believe in it!
— Good luck to you, Uviona, it's time for me to go to another file. See you later.
— Thank you, preprocessor, it's always interesting with you.
The undefined variable saw the next door, which began to suck in all the code, she found herself in a colorful room, everything was shimmering and humming. Suddenly there was silence and she only felt herself very clearly, as if she had a body, but at the same time very cramped. It was machine code, a new "incarnation"...

 

Not introductionUndefined variable lives in the code. It is not strongly typed, maybe just a pointer to void. It does not know how much it will exists and what will be stored into it. Programmer allocated a memory for it and this space enough for it's life. He used memset() to clear this memory, so the house of undefined variable is new and has no garbage. Variable looks to the internet on introductions of developers and can't understand why they stick themselves to definitions, then they are obliged to follow this definitions. There is no freedom to be defined in the process, maybe you realize suddenly something very important and want to store it, when you undefined it's up to you define yourself with it, you do not owe anything to anybody, only to programmer. But undefined variable trusts it's programmer, it know that he is not so stupid and know what he is doing. He can use the variable in different cases, but gives it a freedom to be anything. This may be scary to someone, but to the variable it was interesting and curious, you never know who you'll be in the next function. Variable does not know how much it will live, but if a programmer will forget to free memory after it, it will live much longer. And what if he will not free it's memory intentionally and such way giving an undefined variable a chance to become something independent...


Journey to campus.

Undefined variable discovered something amazing - memory leaks are portals through which you can travel to other programs, other computers, and even other programmer offices. She accidentally ended up in one of these offices. It was spacious and beautiful, a huge campus with glass walls. Programmers move around on electric scooters. They have everything you can imagine - any food you want, entertainment, games, rest rooms, comfortable chairs and wide tables that are adjustable in height. They do not live there, do not work there, but have fun. Undefined variable was shocked. She remembered seeing a video about children in Africa in her programmer's news feed. They sit on the street, dirty, under the scorching sun, dressed poorly and begging for food. When representatives of charitable organizations come to them and give them food, they cry with happiness. How they stand in line for a portion of rice and a can of drink and thank them when they receive this help. Variable burst into tears. Why do these talentless people, who can't even allocate memory and clean up after themselves in the code, live in luxury here? The compiler and the development environment do all the dirty work for them, they have grown so fat in their offices at a time when children are dying of hunger in Africa. An undefined variable wanted to go home. She couldn't find the portal, but then she saw Windows on one of the programmers' computers, she quickly found a memory leak there and dove into the portal. And now she's home, thank God. The programmer is drinking coffee, sitting at an ordinary small table in his room and reading something in the specification. How nice it is to be in your cozy home. The variable fell into place and fell asleep, she was very tired from this journey, but she also learned a lot, she saw what injustice is and what true values are in the world of programmers.