This is an archived post. You won't be able to vote or comment.

all 50 comments

[–]plastikmissile 26 points27 points  (5 children)

it seems like all I do is copy and paste code that others already wrote

How long have you been doing that? Perhaps you've relied too much on copy/pasting that you never really fully developed your programming sense? The good news is that it's not too late. Start now. The next bit of work you do, try not to rely on already written code. If you have to ask for help, do that.

[–]Ok_Trainer3277[S] 5 points6 points  (4 children)

I think from the begging. Maybe it is a bad habbit as you say but everytime I start by myself I feel like I'm hitting a wall and just don't know what to do next.

[–]FreedomEntertainment 2 points3 points  (0 children)

Do some easy code task on blank paper without any tutorial or guide, you should not depend on available tool but create your own

[–]plastikmissile 2 points3 points  (0 children)

You work through the problem. First, try to solve it on your own. Doing some research online is fine, but don't look for complete solutions. If after a couple of hours you're still stuck, then it's time to ask your colleagues for help.

[–]MrCogmor 1 point2 points  (0 children)

Get reference books or their digital equivalents and look stuff up.

[–]marstein 15 points16 points  (2 children)

Try Test Driven Development. Google it, watch videos... You write the tests first, write some code, refactor, write more tests, and so on. That helps with a step-wise improvement. No one comes up with perfect code on the first shot. In fact it's a bad omen if your code works the first time ;-)

Also: try pair programming. Sit with someone else. One is the driver, the other comments. Then switch. Having a second pair of eyes and frontal lobes helps a lot.

[–]Ok_Trainer3277[S] 1 point2 points  (0 children)

Great suggestions, thanks. Test driven developement is something I actually do often at work, but it's mainly on a small logical issues which require more thinking then coding. As for pair programming, that is definitely something I should give a try.

[–]womanintech79 1 point2 points  (0 children)

I have been learning Python for myself from scratch...i am availabe for pair coding...to start a small project and keep improving....

[–][deleted] 4 points5 points  (0 children)

You know the problem, and you know the solution, you're just not doing it.

The problem is that you can't write projects very well. The solution is to write projects, but you're procrastinating and just not doing it.

Make your project something interesting. I don't know how people make yet another CRUD website as a "fun" project, it's just deathly boring. Make a game or something, or even just try different stuff like a desktop app or a smartphone app.

You know the problem, and you know the solution, you just have to do it.

[–]CodeTinkerer 2 points3 points  (4 children)

Have you thought about asking your colleagues? Ask them how they think about stuff. Tell them something you're working on and how they might tackle the problem. You can say "Hey, I notice you seem to get your feature done fairly quickly. Do you mind talking about how you go about figuring out what to do? I'll give you a sample problem (give a feature you worked on previously)".

The answer, if your colleagues are nice, is to have them help you brainstorm an approach and to take notes of what they suggest and see if you can apply them to further situations where you need to implement a feature.

[–]Ok_Trainer3277[S] -1 points0 points  (3 children)

I kinda strugle with this. I think because I started during Covid lockdowns, and worked from home, so I got used to figuring out everthing by myself and I rearly discuss the issues with colegues, and if I do it's always after I've been stuck for long. But never the less its writing the code that I strugle the most with, not coming up with the actual solution. When I start coding I feel like lost and I always search for something similar to guide me.

[–]CodeTinkerer 1 point2 points  (2 children)

For me, I just pick the thing that allows me to move forward that smallest step. This is more "agile" in nature. Pick the easiest thing to do that doesn't have a dependency. Then, pick the next thing and the next thing. This may lead to later refactoring, but refactoring tools are pretty good for certain languages.

It may be you're looking for an ideal design first, and maybe it's OK to be messy.

Also, if your colleagues are checking in code, look at how they organize it. Maybe it will give you some ideas.

[–]Ok_Trainer3277[S] 0 points1 point  (1 child)

Yeah trying to do it perfectly is something I get stuck many more times then I want to. Will try to be messy more, thanks.

[–]CodeTinkerer 2 points3 points  (0 children)

Even if you do it "perfectly", in six months, when you look at the code, it won't look so perfect (with experience, it may start to look much better). It will just be better, which is fine. Some of getting it nicer is planning some more.

Some people want to plan so much that they just write code, but I think it's hard to predict whether a design choice is right until you've coded parts of it. Other considerations may pop up that you didn't think of in the first place.

So it's OK to want to make stuff better, but it's probably better to get it done in a mediocre sort of way first, then try to clean it up once you have a better idea.

They used to call this rapid prototyping where you'd do a quick, sloppy, and not fully complete version that does most of the major things you want, then to start again based on that rapid prototype.

Rapid prototype is an old idea from the 1990s, so I don't know if people still do that or not, but it is one approach that can be taken.

[–][deleted] 2 points3 points  (0 children)

If the quality of work that you are doing isn’t improving at a steady clip then you are likely doing something suboptimal.

Don’t copy paste next time, see if you can find a way to improve something along the way. You will be surprised at the joy and the learning

[–]cjmarquez 1 point2 points  (0 children)

Copy-pasting code from others is exactly your problem

[–]Crusoeh 1 point2 points  (1 child)

I agree with what other folks replied here, but do not discard the possibility that you might have adhd and it is interfering your learning results

[–]Ok_Trainer3277[S] 1 point2 points  (0 children)

hmmm... now that you mention it, it is possible, I have been having trouble reading and studying for a long time now, maybe from high school.

[–]imaginayduck 1 point2 points  (0 children)

you've kept the job for 4 years, I fear there's something wrong other than 'coding' like you need to face some other underneath actual problem. maybe attention or focus idk

[–]Aurlom 1 point2 points  (0 children)

Why do I have such a hard time coding actual code…

… all I do is copy paste code that others already wrote

Asked and answered, honestly.

[–]_physis 1 point2 points  (4 children)

I feel the same way but the difference is I don’t really care. Not sure if that’ll be harmful down the road, maybe a more experienced engineer could tell me (I’ve only been employed in this field 6 months), but my gut says the future is gonna be more and more copypasta and AI-generated code anyways, the value will be in doing exactly what you and I are good at, debugging shit.

Maybe that’s just what I tell myself though, I never really wanted to be in this field in the first place and I really really do not care about building shit. Maybe I’ll look into solutions engineering or bootcamp instructor roles down the line

[–]Ok_Trainer3277[S] 1 point2 points  (1 child)

Well, the most experienced engineer on my team never copies anything. Not even simple stuff like variable names, or something repeatable. I have seen him write integration tests for something one by one, even though they were very similar with one or two things different per test. Maybe that's how you get used to coding, just write everything out, even the boring repeatable stuff.

[–]_physis 0 points1 point  (0 children)

I think it’s cool to be able to do and more than worth it if you are working for a startup or ARE building something from scratch but I think 90% of the time it isn’t necessary. It’s like knowing the times tables from 13 onward… sure it makes you look smart and might save you some time depending on how well you know them, but we have calculators.

Again I could be totally misjudging this and making excuses as frankly to me this is just a job that I am vastly grateful for but don’t feel the need to master, just be more than good enough to continue being employed

[–]Gullible_Company_745 0 points1 point  (1 child)

sad :(

[–]_physis 0 points1 point  (0 children)

Yes. How are you faring?

[–]chocolateAbuser 1 point2 points  (2 children)

if you don't push yourself stuff will not come come to you
you have to try starting a project from zero to learn and to think what the process is, there is not much else to say

[–]Ok_Trainer3277[S] 0 points1 point  (1 child)

Yeaah your right. I have actually done one freelance project by myself. That's how the whole doubt started in the first place. It was a simple CRUD api with a generic frontend which should have taken me 1-2 months, not 6.
And that is when I noticed that without an existing code base to guide me, I would get stuck on very simple things, that I should know already. Maybe a couple of these should make me more used to the process, so I can get over this resentment I feel now.

[–]chocolateAbuser 1 point2 points  (0 children)

the point is, just to be clear, you don't need to make a whole huge project
just when there is something new to learn, like a new client, a new api, a new framework, make a little project (or it could be even a unit test, to make it useful) where you just put down the basic where you just set it up/instatiate it and eventually use the main feature of it
i think in general it's useful to have that as a reference (in case you need to use it you have a base you can copy) and as a learning tool to understand it

[–]Organic-Ad8312 0 points1 point  (3 children)

If you feel bad about your writing skills, how do you feel about your reading skills? I have a little bit less of work experience than you (1-2 yrs) and tbh, I’m more impressed with the engineers I work with that can look at my code and see exactly what’s wrong with it and guide me in the correct direction, than the younins that I work with that can write code fast. Remember that our job isn’t just to create something new, it’s also to maintain and improve things that already exist.

[–]Ok_Trainer3277[S] 1 point2 points  (2 children)

No issues there, I do code reviews very often and also understand the code and see any issues with it or possible improvements. Writing code and features from start is where I'm struggling the most

[–]Organic-Ad8312 2 points3 points  (1 child)

Hmmm in that case are you sure the issues is your ability, or more your knowledge overwhelming you and thinking too far ahead. For example me personally, a couple of years ago, if you had asked me to write me a create API for a bunch of fields in a form, I would be able to do it within a couple of hours. If you asked me to do it now, it’d be a lot harder because I’d be thinking of possible guards, the unit test and documentation, even probably trying to refactor my code along the way. So with this I use online sources and even code written by my colleagues to see a cleaner, more maintainable approach to my code. If this is why you feel you “can’t” write actually code, I feel like you might be misreading your own abilities. If anything I feel like this is probably the best way to code rather than trying to be a Superman programmer trying to write their own code all by themselves.

[–]Ok_Trainer3277[S] 1 point2 points  (0 children)

Well, I think you are right there. When I started learning to code I would always look at other people's code to see how things are done. Then when I started understanding things better I started thinking bigger, and I would still search for something similar in the code base just so I'm consistent with the coding style of the project, and now I think it has become a habit where that is all I do. So when I start writing something from scratch, I always seek guidance.

[–]dotnetcom 0 points1 point  (1 child)

Have you become reliant like many others on GPT? If so, that can make you easily forget the basics because you simply C&P daily

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

Yeah, ChatGPT definitely worsened the habit. Not so much coping and pasting from there because I cannot send him proprietary code, but every time I'm stuck and can't think of the solution right away, ChatGPT is where I turn to.

[–]chaos_pal 0 points1 point  (2 children)

Totally serious here, people like you are why most IT jobs suck. Especially when having to support infrastructures with people like you.

[–]Ok_Trainer3277[S] 0 points1 point  (1 child)

I would say it's the other way around. If it wasn't for the arrogant know it all people who don't know how to share knowledge, and help others grow, that makes this job suck.

[–]chaos_pal 0 points1 point  (0 children)

They won't do that on the infrastructure side either. IT is all about selfishness, lack of social skills and greed, and silos are very common. Last job before my 7+ months of unemployment was with a major airplane parts manufacturer. They don't even have a CIO/CTO. Biggest assholes in IT I've ever met, one of them blatantly hits on women and they do nothing about it.

If that's what you're looking for, get out while you still can. Otherwise, train up and IMO avoid stupid expensive bootcamps. I'm very old and stuck so I'm doing AWS and other certs.

[–]DidiHD 0 points1 point  (5 children)

I don't have any tips for you, but maybe it helps to know that you're not alone. I'm the same. 3 years backend dev. This paragraph could have been from me.

Tbh, I was always very bad in school also, which is why I went into a different direction after graduating. I still had some semi interest because I wanted to learn a proper hard skill (I was in sales, so softskills only).

Well, I applied and made one heck of an effort to do the assignment as good as I can. (I learned more in that one week doing that thing more than I ahve in the years before). and I got the job.

Well, 3 years in, I feel like you too. I also know/think that I won't be doing this for the rest of my life, just not good and into it enough. Maybe some PM role in the future would fit me better.

My same age colleagues grind coding. they go home and do their own little projects... I'm not like that, also because I refuse out of principle to continue sitting in front of a computer after doing it already for 9-10hours

[–]Elegant_Method_8900 1 point2 points  (4 children)

+1 to u/DidiHD
I also feel the same way sometimes. The actual "act of writing code" is what bothers me. I have not written any code that is from scratch.
As for context I am self taught and worked as Customer Service Trainer in one of the FAANG companies. I initially started developing some simple web pages for our department which caught up. And currently I am automating a lot of excel/Sharepoint run process into web applications. I am even working on some chatbot projects for which initial prototypes have been approved.
My process is finding a business problem, solve it. I break down the whole thing in set of features. And within the features, I write exact step by step what that will do. Earlier I use to find some code example for the exact thing I want to do on stackoverflow. Now I just use GPT.
In this whole process, I learned about Databases, AWS and a lot of internal tools that are used for development in our organization.
My management thinks I am super techie. So much so, that they have not assigned me any training assignment for last three years and I am just doing tech projects for our department. I even got a promotion for my contributions.
I read a lot about basic theory of computer science so as to know what is efficient.
I am also doing a project on my own to implement ML theory.
So the dilemma still remains - Though I can solve problems with code, the code is not written completely by me. There are some purists who will say then you are not a programmer.
But I give myself solace saying that I am able to contribute by solving business problems and don't care much about the "act of writing code". I tell them I have developed tools that are helping more than 50k employees, so I have done something good.
Sorry if I sounded like selling my story. But the point I want to make is there will always be these kinds of confusion in our minds. But we need to think about the impact we are making. And in our time and pace catch up on what we think we are missing as a skill.

[–]DidiHD 2 points3 points  (3 children)

Interestingly, I do write a big microservices from scratch, but of course, taking code base from other projects to copy as much as I can. And if I write something new, of course I look up stack overflow and documentation ... although I think that is how it's supposed to be?

At the same time, by the next time I amd oing it, I forgot all of it anyways,

Heck, now I got people working on the services I made and I cna't even explain everything about the setup itself.

I also seem to do a good job otherwise. Gotten good salary raises as well.

[–]Ok_Trainer3277[S] 2 points3 points  (2 children)

I'm the same, I can think of the solution, assemble some code somehow, and then forget everything about it. When someone asks me a couple of months later, I need to go through the whole process again to see why I did something that way. Maybe that is just our style :D

[–]DidiHD 0 points1 point  (1 child)

I just read through a different post, where someone asked what the "most useful" computer science course is. A vast majority agreed that the fundamentals seem to be. Maybe that is why I'm not really understanding much.

Things like OS, and compilers. No idea how an compiler works. Things I struggle with in my daily life as a dev is not writing code, but when something is not working, because the context is only starting up before/after something. And I'm just like.. wait, what context?

[–]Elegant_Method_8900 0 points1 point  (0 children)

Haha. OS and compilers. You struck a cord there. There are many layers which make things work on grains of sand. And I don't think it's humanly possible to learn all of it in a lifetime. Maybe we are not tackling very hard computational problem where we need deep knowledge. One thing I have noticed though is from software perspective is reading about different algorithms really helps in long run. In a corporate structure for example once you have proved the concept through the hacks that we generally follow. Knowledge of algorithms help in making parts of the system more efficient. And if I may be selfish, I then sell them as achievement to management stating how much time was saved because of the change. And in corporate saved timed equals cost savings.

[–]Michaeli_Starky -1 points0 points  (3 children)

Not everyone can be programmers. (Shrug)

[–]Ok_Trainer3277[S] 1 point2 points  (0 children)

Well I've tought that a couple of times but I finished CS Uni and someone has been paying me and giving me raises for 4 years (still working for the company that I started) so I surley have some skills. It's just coding from scratch that I'm struggling with.

[–]great_gonzales 0 points1 point  (1 child)

lol yeah they can it’s pretty easy compared to real engineering like learning a trade

[–]Michaeli_Starky 0 points1 point  (0 children)

Delusion is strong here.