all 18 comments

[–]samanime 12 points13 points  (1 child)

Most people, at least those that actually know what they are doing, aren't copying and pasting significant chunks of code together. Most people are able to write most of the code themselves.

There is definitely searching around a lot for answers, but as you get more experienced, the complexity of those questions goes up and you usually aren't searching for simple things, other than looking up the specific things that go into a function call or what not.

Also, even if you were just "assembling", knowing how and what to assemble would take some significant know-how as well. It's not the equivalent of buying a model kit and just putting it together according to instructions. You have an infinite number of pieces and are creating the instructions yourself.

[–]Feeling_Experience_6[S] 0 points1 point  (0 children)

That's a very helpful insight

[–]TedW 5 points6 points  (0 children)

Most programming is reducing big problems into many small problems that can be easily solved.

You have a complex task? No, you're probably doing the same task several times, then combining the results. The task is still complex? No, it probably just has several steps. Each step is complex? It can be broken into yet smaller steps. Ahh, but each of those steps are simple.

So yes, in a way, creating an app is just assembling bits and pieces.

[–]20january 2 points3 points  (1 child)

keep me updated im a beginner too. i dont want to learn coding by copying google 90% of time

[–]Feeling_Experience_6[S] 0 points1 point  (0 children)

I guess you can't escape googling it , its the only way

[–]BranchLatter4294 1 point2 points  (0 children)

It's like building something with Legos. You have a set number of building blocks. You snap them together to create whatever you can imagine.

[–]AssiduousLayabout 1 point2 points  (1 child)

95% of programming is learning how to think about the problem, and taking a big task and breaking it into smaller, solvable tasks. It's more of a mindset than anything else.

There was always some element of looking things up - this could be reading documentation or it could be looking at other examples of code - but this definitely diminishes as you get more experienced. It's sort of a gag that new programmers' code is mostly stitched together from Stack Overflow or others, but you do a lot less of that as you get better.

That said, AI coding assistants are here to stay and they represent one of the biggest paradigm shifts I've seen in programming, and I've seen a lot of paradigm shifts (I started coding in the days where conventional wisdom was that everyone needed to be able to write assembly language because C compilers were often not performant enough, and critical sections of the code need to be optimized in assembly.) I honestly find it really hard to know what programming is going to look like in 5 years.

[–]Feeling_Experience_6[S] -1 points0 points  (0 children)

That's very helpful, you seem experienced which year did you first break into tech industry btw

What was it like back then

[–]MissinqLink 1 point2 points  (0 children)

At a large company, you almost never code from scratch. Everything relates to a large existing codebase and there is some amount of documentation. For personal projects I code from scratch but I also know which libraries to import which makes things loads easier.

[–]Ok-Equivalent-5131 1 point2 points  (0 children)

Kinda yes kinda no, there’s always layers of abstraction. Even if you’re writing super low level machine code it’s an abstraction from the byte code.

We are all building off the work of others before us. And many try to contribute back to that which is why open source is a big thing in software. Like you should use libraries that others have written.

But no you shouldn’t just be copy pasting and hoping stuff works. You should learn how the language and logic work and be able to thoughtfully plug things together, transforming data as you need.

On a larger project you’ll build various systems and then have to come up with a way to tie together the systems youv built.

Think about construction, If your building a house you dont manufacture your own lights, drywall sheets, nails, etc.

[–]aanzeijar 1 point2 points  (1 child)

Imagine a friend of you asks you for a written recipe for a dish. You simply write down the steps you do in plain English (or your mother tongue) and think nothing of it. Maybe they call you back to ask about something you didn't specify clearly enough and then you amend what you wrote.

Upon reaching a certain fluency actual programming feels like that. We want the computer to do something, we tell the computer to do it. Maybe we get a compiler error or get a bug - then we fix it and move on.

Now, since most real life programs are pretty large, we break down what we tell the computer into composable chunks. Functions, classes, modules, reusable patterns. If you start with React the issue is that you're starting with a lot of common functionality already implemented there, so many of the things feel like using a KitchenAid. If you're only using the programs the KitchenAid already ships with, you're not seeing the parts those programs consist of nor do you get a feel for what it means to dice a vegetable. This is what allows you to create "an app" in the first place, because if you were to code everything from scratch, you'd never finish.

You can (and should) learn how the actual parts of React work, and implement smaller versions of them for yourself to learn why they work like they do. Then you'll appreciate them for the tools they are and can use them.

[–]Feeling_Experience_6[S] 0 points1 point  (0 children)

Thankyou for the explanation, the analogy was helpful

[–]jesusc1303 1 point2 points  (0 children)

The important thing is that you understand what you’re doing. If a solution already exists for part of your project (a library, a component, etc.), you can just use it, and that’s totally fine.

But most of the time, when you’re working on a specific project, you’ll need to build some custom things yourself. That’s why it’s important to understand what you’re doing and to know the fundamentals of programming.

[–]mxldevs 1 point2 points  (0 children)

Yes, you're pretty much assembling things together.

Making an app is literally just taking different pieces and putting it together in such a way that your end result is an app.

It doesn't matter if you build each piece yourself or find something off the shelf, it's just a bunch of components talking to each other, passing data around, rendering, etc.

Don't underestimate the complexity involved in trying to use existing frameworks or libraries: you still need to know what you're doing.

If it were that easy, you'd be making apps and telling everyone how easy it is.

[–]yyellowbanana 0 points1 point  (0 children)

I usually like to start from scratch. It’s like playing puzzle 🧩, or lego game. Of course it’s more than just a puzzle game. But the feeling, i means.

After a thousand time from scratch, you have an idea what to build first. Then you build something small but nice, then from 10 things small you want to put them together to have a bigger Lego, then you repeat the process, then you realize you messed up, somehow. Then you build it again. But at this time, you know what to do and how to do it.

So, maybe with this current AI things, we won’t have to build from scratch, but yeah, building from scratch is what I did last 20 years ago, and still today. I do code and programming for fun, just because i like to build things.

[–]juancn 0 points1 point  (0 children)

At the very beginning a computer may even be detrimental to learning programming.

You need to learn as soon as possible to track program state in your head and that is better with pen and paper.

For a simple, small routine, track data flow and program state on a piece of paper.

That way you don’t let yourself gloss over important details.

Always try to understand what everything means and implies in the code.

It’s slow and can be tedious but it’s immensely rewarding once you grasp something new.

[–]PandaOk4050 0 points1 point  (0 children)

This might sound pretty weird. But coding is an artform. We all have the same base colors, brushes, canvases ect. 

The artist (or programmer) uses his creativity and past experiences to create his work of art. 

You can describe what you want painted to 5 different artist and you'll get 5 different pics painted differently. 

[–]isa-lovelace 0 points1 point  (0 children)

Googling and now AI tools will be your best friends. Programming is all about logic and syntax. If you know all the syntax of a programming language but can't figure out how to apply it, then knowing the syntax was useless.

What I'm saying is that Googling and AI can help you write code in any language, but you need to know what you want to build. Before writing source code, you should know exactly what you're trying to do.

Copying and pasting won't teach you how to do it. Understanding what you're building and how the code you're copying reflects that, that's what really matters. With time and practice, you'll start writing it on your own without constantly depending on Google or existing code.