this post was submitted on 19 Aug 2024
7 points (68.4% liked)

Programming

16971 readers
211 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 1 year ago
MODERATORS
 

What is the CS / uni goto course for this, or what really clicked for you?

top 13 comments
sorted by: hot top controversial new old
[–] xmunk@sh.itjust.works 18 points 3 weeks ago (2 children)

Your question is confusing... are you asking how to get better at project management?

[–] andioop@programming.dev 7 points 3 weeks ago (1 children)

Also, what do you mean, OP, by "do you have perfect recall or an average human byte"? Are you thinking of information in terms of bits and that people can only keep a limited amount of things in working memory at a time?

[–] j4k3@lemmy.world 2 points 3 weeks ago (1 children)

Human byte was used in a conference awhile back to refer to the amount of information one can process at any given point in time. Someone that has total recall has a much larger human byte. The term makes clear intuitive sense to me, but I'm a highly abstracted person in the first place. My abstraction seems to limit how much complexity I can manage with a project and code. I'm largely exploring the implications and contrasting personalities to better understand how people are able to manage so many details in some projects.

I'm messing around with trying to understand the game Cataclysm DDA at the moment, and reading into everything that is happening as it is scattered all over the project is a struggle. When I see all the pull requests and the daily release cycle of the game, I'm baffled by the way someone is able to manage this kind of project and maintain an overall vision and consistency in the game and code. I feel like I must be missing some critical element of methodology.

I exist in a vacuum, and live under a rock. I was an advanced fabricator, got disabled, and now largely stuck finding myself while exploring the digital world. I'm learning entirely on my own and without any background or mentors. In abstract, I might spend forever trying to invent the wheel if I fail to ask the right questions.

[–] Sauerkraut@discuss.tchncs.de 4 points 3 weeks ago* (last edited 3 weeks ago) (2 children)

As someone who is on the spectrum, I hope you don't find this offensive, but have you considered that you might be on the autistic spectrum as well?

My first degree was in medical science, and it has been a while, but I am pretty sure our neural pathways are nothing like a Turing complete binary machine so it is pretty weird to try and evaluate people in terms of "human bytes"

[–] towerful@programming.dev 5 points 3 weeks ago

Ah, I think it's like "keep track of 7 items, the 8th might push something else out" ( https://en.m.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus_or_Minus_Two ).

So like mind-map-complexity.
Like, when you are trying to figure out some bullshit OOP inheritance, you are 9 levels deep and have no idea what the original problem was, but you feel like you have made a connection to the solution, but now you have to backtrack everything (or figure out where your last edit was) to try and figure out what that connection actually means and what you have to do now

[–] j4k3@lemmy.world 1 points 3 weeks ago

I am an intuitive thinker that functions in abstract thought. I am not autistic. I have had extensive testing related to my physical disability and massive head injury. You lack a nuanced understanding of the context and scope of what I am asking and why. Everyone has a limited amount of information that they can process at any point in time. For most people they can only handle around a thousand lines of code at a time. There is a major metal challenge to overcome for a person to handle a project with hundreds of thousands of lines of code. This is largely an organizational challenge. When such a systemic challenge is encountered, larger groups of people tend to come up with better solutions over time. I am limited in my exposure to other people. However, I am aware that many people here are more experienced than myself in this area. This post was an attempt at exploring different forms of organization. I'm also exploring the curiosity I intuitively pick up on that indicates many of the best programmers likely have perfect recall, or at least have a larger human byte than average. I am far more self aware than the average person, and have made the assumption that most people that are gifted in their ability to handle more information than the average person will also be self aware to a similar extent. Abstracted intuitive thinking is a rarer form of functional thought, but it is not autistic. I can apply this kind of abstraction and mobility across subjects to anything. I do conflict with personalities that lack value for intuitive thinking and abstraction, but it is because they can not see the bigger picture, their own internal conflict, and address it effectively. They also tend to see my thought process as arrogant and assumptive, but it is because they lack a contextual understanding of my real flexibility and mobility across abstracted subjects and ideas. For example, when you hear the stories about Einstein abstracting the light from a train to extrapolate the principals of the speed of light, or a man falling from a roof to abstract the properties of gravity, that is a very familiar way of thinking in my mind. Everything I encounter is like this; where I am fitting the pieces together and noticing connections and coincidence that I find amusing. I'm very aware of the assumptive bases and correcting it constantly. I operate on the statistical probability of my assumptions, but I use all mental spaces to support each hypothesis and remain open to any new information that better fits what I already know.

[–] j4k3@lemmy.world 3 points 3 weeks ago (2 children)

I'm asking to find out if there is a class and if it has a goto book, but leaving it open ended for other techniques like maybe Emacs and the org mode stuff, etc.

[–] Deckweiss@lemmy.world 12 points 3 weeks ago* (last edited 3 weeks ago)

For me the best learning came from actually working on huge, complex projects - then seeing the problems that come with that - then looking for ways to improve the situation.

[–] deathmetal27@lemmy.world 7 points 3 weeks ago (1 children)

If you are asking about a complex project architecture then Domain Driven Design is for you.

If you are asking about project management, then perhaps you need to look at something like Scrum.

[–] ericjmorey@programming.dev 1 points 3 weeks ago (2 children)

Scrum lends itself to procedural nonsense. It's rarely implemented in a way that improves project management.

[–] marcos@lemmy.world 3 points 3 weeks ago

Yes. Actually implementing Scrum can go either way, but going out of your way to learn and apply it is certainly going to end in tragedy.

[–] deathmetal27@lemmy.world 1 points 3 weeks ago

In my experience scrum usually doesn't work if its process is not followed correctly. Very few people understand its principles and even fewer correctly implement it.

But if used correctly it brings a sense of organisation to a complex project.

[–] hexbatch@programming.dev 3 points 3 weeks ago

Most people do not know how to manage thousands of files of code in a project until they do exactly that. It comes with experience.

Many people learn by example, working on existing projects and seeing how it’s done.

Others can learn the hard way by making their own projects, and refactoring as the complexity grows.

It can be helpful to use a framework for your language of choice, that has a way of organizing files and code.

courses and books really don’t help much, except maybe to learn some ideas that some people use.

Once code is organized, there are as many ways to do it as there are people. But all of them seem to fall into broad patterns with none being wrong, except for those that slow down the code in real time systems.

The main secret behind any code organization is that it should not drive other people crazy, and they can learn to work on it too .

People will say that a project should be organized and follow rules. But I have never seen a big project that is more than organized chaos. With a few sketchy rules keeping the entire thing connected with bubble gum and duct tape.

I think a medium sized project with a few hundred files and a few tens of thousands of lines of code can be organized well. After that it gets more chaotic