Jump to content

What should I do Before I give up programming?

shivajikobardan

I'm in the verge of giving up programming and wondering what could I do before I give up to make sure I did what everyone did before giving up.

I've a bachelors degree in computer science. I didn't do it as well as I'd have liked to do, but that degree has gave me familiarity with most terms used in basic programming.

I spent last 3 months working on web development(I'm learning MERN). I learnt html,css,bootstrap, javascript and react till date(In bootcamp), but I failed to learn React. Even javascript, i'm no expert at. Even css, I learnt the basics but I'm not an expert when it comes to building half decent sites. Same for bootstrap. I can carve a site using html,css,bootstrap but it won't look good. I was completely  impossible to learn when it came to react. Whenever I saw usage of useEffect and useState hooks and we start making changes in 10 different files for it, it confused me and I understood nothing.

I had access to world's best resources to learn books, tutorials, blogs, youtube, udemy etc. I had access to forums like this to get help and support but still this was tough for me.

I feel unlucky, sad and hopeless atm. Friends who were weaker than me in conventional college studies and academia have done jobs and internships but I'm failing to even learn something properly. I'm not jealous of them but just feel trash about myself.

People say do projects to learn but I really don't know how that works. For eg: https://codepen.io/pelko/pen/MWBpNmL This project. I make stupid stuffs like these and can't produce a good output that is playable. It's too hard for me.
These are some of my projects.
https://htmlcssbasicsite999.netlify.app/

https://counterapp999.netlify.app/

https://dicegame999.netlify.app/

https://digitalclock999.netlify.app/

https://portfoliosite999.netlify.app/


I did all these projects without looking any tutorials.

I keep forgetting how I built something time and again. I nowadays try my best to add documentation though.

I'm 70% sure to give up programming but still I"d like to make sure I follow advices from fellow forum users about it who've spent their life around programming.

In 3 months, I am seeing no progress, except few days like:

1) When I carved a site on my own using html,css without looking tutorials.

2) When I carved a site on my own using bootstrap without looking tutorials.

My problems:

1) I've not break through'ed in programming. If I can make anything with javascript that's over 500 lines of code, I'd consider that a breakthrough. I'm aware LOC aren't a good metric but please try to understand what I'm trying to say. A big application using programming.

2) Even in css, I failed to make presentable sites. The coding bootcamp I feel is going too fast as well. Same for bootstrap, I made sites but I failed ot create beautiful sites. People recommend me frontendmentor.io but IDK what to do there? It looks sketchy to me. If there is something that can teach me css, I'd be so grateful.

3) After watching tutorials, I can't repeat what they've done in tutorial without watching the tutorial of project even though I understand each and every step they do in project.

4) I still am not fluent in ES6. I can't think in ES6. Arrow functions, map, reduce etc. I Understand them, but using them is different ballgame.

If you understand my situation, please guide me. I don't need roadmaps, any more tutorials but plain old guidance and advice on what to do by people who went through this situation

 

Link to comment
Share on other sites

Link to post
Share on other sites

Maybe WebDev just isnt for you?

I am also nearly done with my bachelor in CS and I really dont like anything with WebDev. Maybe go to a different direction like Java, or C
I really like IoT and microcontrollers but I am dreadful with html, css and js. Also, afaik its fairly common to google a lot of stuff while coding. When I am developing in java, I usually have the API open in a browser tab. Sure, you have to know some basic stuff (arrays, variables, the logic of the language,..) but for everything else, just google it and dont worry so much. These languages are so complex, learning everything by heart would be IMO a waste of time.

Link to comment
Share on other sites

Link to post
Share on other sites

You definitely shouldn't feel bad or like you're doing something wrong if you google things, reinventing the wheel is not part of most job descriptions and nobody knows all functions of a language or framework perfectly by heart, especially right after college. If you're having trouble with basic programming tasks after a college degree in CS I don't really know what to tell you, clearly your university didn't teach you well or didn't do a good job of measuring your progress. It's not about knowing everything in a language, it's about being able to find and build on the features you need.

Don't ask to ask, just ask... please 🤨

sudo chmod -R 000 /*

Link to comment
Share on other sites

Link to post
Share on other sites

whats wrong with googling? just do not google common sythax and standard functions. if you need to copy and paste everytime from internet when you need to do a forEach or map/filter/sort then that is a problem. 

 

10 hours ago, Devryd said:

Maybe WebDev just isnt for you?

The only part webdev about his learning so far is the css and html. the rest are general programming concept that is applicable and NECCESARY in all programming languages. If that is his outcome after 3 months, i agree with op that he needs help depserately and he is going nowhere. He has a wrong and FAILED apporach and he is barely learning anything. you swap out webdev and replace it with things like C or java and their related frameworks/tech stacks, it would be just as much a slaugther as javascript. 

 

 

 

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

Did you watch a YouTube tutorial on react? 

 

I was using angular and there's a long YouTube tutorial on it that really helped me. 

 

Otherwise codecademy should have something on react

 

Link to comment
Share on other sites

Link to post
Share on other sites

15 hours ago, shivajikobardan said:

If you understand my situation, please guide me. I don't need roadmaps, any more tutorials but plain old guidance and advice on what to do by people who went through this situation

I would say you should look for a junior position in a company that you can check is "real" and has good opinions (work conditions, training and mentoring their juniors etc.) - you should join a project that is moving forward, has it goals and is functioning so that so you could see the impact of your work but also to have a purpose for your work. Right now you are trying to grasp a lot at once without moving clearly forward.

 

And don't run away from tutorials. Most of software developer work is reading code and planning, not writing large quantities of code.

Link to comment
Share on other sites

Link to post
Share on other sites

11 hours ago, wasab said:

whats wrong with googling? just do not google common sythax and standard functions. if you need to copy and paste everytime from internet when you need to do a forEach or map/filter/sort then that is a problem. 

 

The only part webdev about his learning so far is the css and html. the rest are general programming concept that is applicable and NECCESARY in all programming languages. If that is his outcome after 3 months, i agree with op that he needs help depserately and he is going nowhere. He has a wrong and FAILED apporach and he is barely learning anything. you swap out webdev and replace it with things like C or java and their related frameworks/tech stacks, it would be just as much a slaugther as javascript. 

 

 

 

you've got me. That's an issue. What should  I do now? Leave programming?

Link to comment
Share on other sites

Link to post
Share on other sites

guys, what roadmap should I follow (not learn this technology, then that technology but actual roadmap)...in order to be expert in programming. (expert enough to write 500 LOC).

Link to comment
Share on other sites

Link to post
Share on other sites

48 minutes ago, shivajikobardan said:

you've got me. That's an issue. What should  I do now? Leave programming?

Yes if you don't like programming which is what you seem to be hinting at. Those who are passionate about coding do not become frustrated and do not give up after becoming hopelessly confused. Rather they spend more hours hacking away at the code trying to figure out what is going on or going down(the joy of debugging).

 

People do not like programming because it is easy but rather it becomes easy because they like programming. Looking at your projects, these are definitly not works that are worth 3 months of efforts. I wrote more lines of code in a single weekly homework assigment back in college than two or three of your projects combined. You just need to devout more effort, time investments, and energy into it. 

 

Don't kill yourself tho. When I started out coding, for the first day, I literally spent 8 hours hacking away at my code editor. You will get burn out fast doing it like what I did. Just spend 2 hours per day hacking away at the code and perhaps once a week doing a longer session marathon trying to pierce everything together. Don't do many small projects, rather focus on a single big project spanning over many months with set milestones. More the features you want your single app to have the bigger it becomes and thus more time you will spent on it. You will get a good sense of your progress and get better at programming skills compared to just starting one thing, quit half way thinking it is too hard and start another thing, quit half way after just an hour or two thinking it is too hard and repeat the cycle. Trust me, that is how my professors teach senior software engineering and it is much better than doing small coding assigments.

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

7 minutes ago, wasab said:

Yes if you don't like programming which is what you seem to be hinting at. Those who are passionate about coding do not become frustrated and give up after becoming hopelessly confused. Rather they spend more hours hacking away at the code trying to figure out what is going on or going down(the joy of debugging).

 

People do not like programming because it is easy but rather it becomes easy because they like programming. Looking at your projects, these are definitly not works that are worth 3 months of efforts. I wrote more lines of code in a single weekly homework assigment back in college than two or three of your projects combined. You just need to devout more effort, time investments, and energy into it. 

 

Don't kill yourself tho. When I started out coding, for the first day, I literally spent 8 hours hacking away at my code editor. You will get burn out fast doing it like what I did. Just spend 2 hours per day hacking away at the code and perhaps once a week doing a longer session marathon trying to pierce everything together. Don't do many small projects, rather focus on a single big project over many months with set milestones. More the features yout want your single app to have the bigger it becomes and thus more time you will spent on it. You will get a good sense of your progress and get better at the skills compared to just starting one thing, quit half way thinking it is too hard and start another thing, quit half way after just an hour or two thinking it is too hard and repeat the cycle. Trust me, that is how my professors teach senior  software engineering and it is much better than small coding assigments at learning the actual craft.

do you have a micro level roadmap of what to learn ..so that programming becomes easy?

Link to comment
Share on other sites

Link to post
Share on other sites

30 minutes ago, shivajikobardan said:

do you have a micro level roadmap of what to learn ..so that programming becomes easy?

Instead of road map of what you should learn, create a road map of what you want to accomplish. 

 

I.e. you can say I want to create a shopping website. First month, I will create a working home page with dummy categories and dummy products on display.

 

2nd month I will create database and backend server with these products and have my home page grab data from the backend instead of dummy. 

 

3rd month I will create category listing page and product search page and also the backend for it ect. 

 

4th month I will have a cart page, user login, session, and the backend api for it as well and ect. 

 

If you know what you want to do then you already know what you need to learn. You will google up things and watch tutorial as you implement each feature and pieces of your web application. Whatever you do, don't give up part way. Finish a feature to the end. If you feel like they are done, think up more! E.e, I will now create an admin page for adding products and ect. Soon enough you will have a huge code base and be amazed at what you had accomplished. 

 

Oh, btw, don't worry too much if your webpage looks bad. When i work in react, it is always functionality first and then looks with css/less, styled component, whatever else styling library next. 

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, wasab said:

Those who are passionate about coding do not become frustrated and do not give up after becoming hopelessly confused. Rather they spend more hours hacking away at the code trying to figure out what is going on or going down(the joy of debugging).

Uh, I have a lot of experience between myself and a lot of other programmers I know (all of whom are deeply passionate about software development...) that says this is wrong.

Burnout is real, and acting like the process of naturally getting frustrated with a problem or project and giving up makes you "not passionate about coding" is a level of no-true-scotsman I would expect this forum to be above. Burnout is not only real, it's common. I've lost countless personal projects to this sort of thing.

 

OP, these are perfectly good projects and about what I would expect out of someone new to webdev trying it for the first time. I'd go as far as to say they're good enough to start applying for junior-level positions. That's the secret: when companies are hiring junior engineers, the expectations are low, that's the point! The entire value add of a junior engineer is someone with little experience that can be trained-up and provide value for the company in the long term.

 

21 hours ago, shivajikobardan said:

1) I've not break through'ed in programming. If I can make anything with javascript that's over 500 lines of code, I'd consider that a breakthrough. I'm aware LOC aren't a good metric but please try to understand what I'm trying to say. A big application using programming.

 

You're struggling with this because this is just a hard problem. Learning to manage and architect large software projects (and in particular how to get things done when you're working with a large amount of code that wasn't written by you) is a skill that takes a long time to develop, and tends not to be a focus in university because of the way course projects are structured. Progress on this is measured in years, not months. Keep writing code and you'll keep getting better.

 

21 hours ago, shivajikobardan said:

4) I still am not fluent in ES6. I can't think in ES6. Arrow functions, map, reduce etc. I Understand them, but using them is different ballgame.

If you understand my situation, please guide me. I don't need roadmaps, any more tutorials but plain old guidance and advice on what to do by people who went through this situation

Understanding functional programming is also a famously hard thing to do 😛 It takes time. If you want to throw yourself in at the deep end, try doing some programming in clojure or one of the more friendly lisp variants. I've had friends tell me that doing advent of code in a functional language is a great way to wrap your head around it. Btw, this is probably the reason you're struggling with react. React uses a lot of the functional programming elements of js, and overall requires a very solid understanding of some of the more complicated parts of javascript, so trying to learn it without solid fundamentals is just setting yourself up for a bad time. I'd recommend just not bothering with react for the moment. It's also just...not very important. Unless you have a burning need to make very complicated single-page webapps, vanilla js will do you just fine anyway.

 

 

The best advice I can give is that feeling like you have no idea what you're doing is normal, and it's expected that you can't pick up all of these tools instantly. Getting better at programming is a very long term grind. If you're stressed about finding work, just know that you could start applying right now if you needed to. I see people talking about building very regimented schedules for yourself and just powering through, but that just seems like a great way to burn out to me. You majored in CS for a reason, find projects you actually care about and want to make and make them. The skills will follow, it just takes time. This isn't a race you can win by grinding "MERN" and other technologies that make

you "marketable" as a programmer. You've been trying that so far and you're clearly not having a great time. Chase dopamine aggressively. Build things you actually want to make, and drop them when you find something that's more interesting. It's the only sustainable way to do it. The projects will naturally become more ambitious, and some of them may even get finished 🙂 (and as it turns out, the abandoned ones work just fine as resume and interview material).

And honestly it seems like this is putting you in a not great headspace, so maybe just take a break from programming for a little while so you can come back to it without the frustration?

Link to comment
Share on other sites

Link to post
Share on other sites

54 minutes ago, NocTheRocc said:

Uh, I have a lot of experience between myself and a lot of other programmers I know (all of whom are deeply passionate about software development...) that says this is wrong.

Burnout is real, and acting like the process of naturally getting frustrated with a problem or project and giving up makes you "not passionate about coding" is a level of no-true-scotsman I would expect this forum to be above. Burnout is not only real, it's common. I've lost countless personal projects to this sort of thing.

well, in real life you dont deliver half finished project. you dont tell your clients or employers you cant go on because you find it too difficult or challenging. doing that is basically telling them i am quitting because software engineering is not for me. whats the point of training someone if they would give up sooner than the company would even let them go? Many self taught programmers do this. drop and start project, drop and start project. Ive seen it first hand many times among peers and i can tell you from experience, they never go very far doing this. do not take my word for it. others who teach programming or had self taught programming can attest to the same thing. 

 

Burn out is not about struggling with concepts, it is about becoming disinterested or overworked which is why i mentioned do not grind more than two hours a day or have more than one long coding session per week. it does get boring if you grind too much. Even senior dev can experience burned out, not because they are stuggling but rather projects no longer interest them and are actually too EASY. really, i have seen coworkers quitting because they see projects too mundane and EASY.  

 

btw, when i mentioned project is not worth 3 months, i am not talking about project quality and functionality but rather the project size, features, and scope. a 3 months long project should be more than just a few home page and whatnots. it is about more complexities and bigger project rather than bunch of tiny projects which are high in quantity but each relatively simple. There isnt a perfect way to judge a project scope or complexities but 10K lines or so of code would be a decently size project for most purposes. it can be downright buggy but if it works half of time, consider that a win. 

Edited by wasab
wrong video. will post the right one if i find it.

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

26 minutes ago, wasab said:

well, in real life you dont deliver half finished project. you dont tell your clients or employers you cant go on because you find it too difficult or challenging. doing that is basically telling them i am quitting because software engineering is not for me. Many self taught programmers do this. drop and start project, drop and start project. Ive seen it first hand many times among peers and i can tell you from experience, they never go very far doing this. do not take my word for it. others who teach programming or had self taught programming can attest to the same thing. 

Sure, but I'm not talking about professional programming and that's not what OP is doing. The thing to understand here is that dropping projects as part of programming on your own time isn't "quitting", or even deviating from your goals, because the OP's goal isn't to "learn react" for the sake of understanding how react works, it's a means to an end. Dropping and starting new projects, in this context, is necessary. It's all too easy to get stuck in the weeds on some technical problem that doesn't really have anything to do with your overall goals, and in those cases moving on to something new is the best way to spend your time. Depending on your skill level the things you learn getting a project the first 50% of the way there is far more valuable than spending the time to "finish" the problem would be. No matter what you do you're going to learn things and get better as an engineer, but you can be tactical about how you choose what you work on to learn more, and learn faster (and much more importantly -- do so in a way that doesn't make you miserable).

 

There might be a bit of a conceptual disconnect here, since my advice is coming from the perspective of programming as a part of my lifestyle-- I don't just program for work, I really like it and want to spend my free time working on things I enjoy. From that perspective any "tough it out" kind of grind is untenable, I can't "grind" as part of the things I do for enjoyment. Instead I pick my battles and work on things I know I'm going to have fun doing, and as a side effect I level up my skills as an engineer. I think this idea applies just as well even to people who don't care about programming except as a way to find a job, it's just way easier to keep up with something that doesn't make you miserable.This video sums this up very well:

 

40 minutes ago, wasab said:

Burn out is not about struggling with concepts, it is about becoming disinterested which is why i mentioned do not grind more than two hours a day or have more than one long coding session per week. even sensior dev can experience burned out, not because they are stuggling, they are way beyond that but rather projects no longer interest them and are actually too EASY. really, i have seen coworkers quitting because they seem projects too mundane and easy.  

I think we're using different definitions of burnout. Burnout isn't about getting bored with work, it's about the work becoming intolerable because some aspect of it is making you miserable.

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, NocTheRocc said:

do so in a way that doesn't make you miserable

i think i get what you are saying and well, i still can only agree to disagree here. doing only what you find enjoyble will seriously limit your learning capabilities. i can love physics but hate learning math and if i only cherry picked my love for physics and kicking the necceassy mathmatics down the road whenever i get frustrated with it, it would not end up well. Doing something challenging will raise blood pressure yes but potential for growth is much greater and so is the gratification at the end. That said, i guess you have a point that banging your head endlessly at a minor technical problem is indeed counterproductive but rather than giving up altoghther and start another project anew, it would be far better to look for an alternative instead. it is always better to build on top of things rather than start out another xyz small. reason is a lot of knowlege and get your hands on "dirty" details can only be accessible when you have enough features and prerequisite components in place. you cant work on user authetnication if you do not already have the migration code for creating a database to store user password hashes for example. Furthermore, it is pretty much the only means you can have a full breadth top to bottom knowledge of system design if full stack is the goal. 

1 hour ago, NocTheRocc said:

I think we're using different definitions of burnout. Burnout isn't about getting bored with work, it's about the work becoming intolerable because some aspect of it is making you miserable.

if thats your defintion then I would still refer back to passion because it ultimately determines what one can put up with. those with enough passion can stomach more frustration. you can tune it down if you are at a breaking point though i would not suggest you go easy but rather find something else you will have more success in. 

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

43 minutes ago, wasab said:

 Doing something challenging will raise blood pressure yes but potential for growth is much greater and so is the gratification at the end.

Yeah, I glossed over some subtlety here. I think the way you phrased this gets to the heart of it: dealing with a hard problem can either be a challenge or it can be a struggle. The first is a positive feedback loop, where failure is an opportunity to fix problems and improve, and the second is negative, which leads to mounting frustration and burnout. Sometimes problems are just really hard, and I think having good concrete goals helps a lot here. I had no trouble learning react (at a time when I had near zero js experience) when it was necessary for a project I was excited about, and I almost certainly would have failed if I tried to make myself learn it without a goal in mind. Doing hard things doesn't have to suck. I would go as far as to say that approaching programming in a way that makes it fun is a skill that can (and should) be trained.

 

One thing I think you're missing here is how qualitatively different programming is when it's not forced. You suggested OP limit their time programming to 2 hours per day, which seems reasonable given the grind model you've laid out, but think about how small that amount of time is. The magic of building your programming habits around enjoyability (which correlates with very good things, like visible progress and completion of features), is that you don't need to impose arbitrary constraints on when you "have to" program each day. It just happens. I work full time as a software engineer and I still get a lot of programming time in (on weeks that I'm really into a project I'm working on my personal programming hours can rival my work hours).

 

2 hours ago, wasab said:

btw, when i mentioned project is not worth 3 months, i am not talking about project quality and functionality but rather the project size, features, and scope. a 3 months long project should be more than just a few home page and whatnots. it is about more complexities and bigger project rather than bunch of tiny projects which are high in quantity but each relatively simple. There isnt a perfect way to judge a project scope or complexities but 10K lines or so of code would be a decently size project for most purposes. it can be downright buggy but if it works half of time, consider that a win. 

10K lines of code in 3 months is reasonable for a very specific skill level, which is not something everyone has coming in. Even writing 10K lines of horrible code requires deep enough knowledge of the language and of web architecture to be able to sketch out how something could at least kind of work. The thing about coming in with no knowledge of a tool or language is that not only do you not know the language, you also don't know what you don't know -- there's a huge amount of uncertainty in everything you do, because not only is your knowledge of the tool not very good, there's also a good chance the things you do know are only approximately right, misconceptions, or just wrong. Designing a large project at the outset of learning a new language is very dangerous because there's a very good chance your plan is nonsense because, by definition, you don't know what you're doing! Imagine tasking someone with no knowledge of how the DOM works or the relationship between markup, styling, and scripts to write a plan to build a webapp in 3 months...it would not go well. This is why flexibility and being willing to drop projects is so important-- you don't get tied down to bad ideas, projects that end up being much more work than expected (in areas you may not care about), or ideas that just aren't as good as things you can come up with once you have a better understanding of what's happening. Over-structuring your path can only get in the way because you don't know what the path looks like, that's what learning is. The idea is that by doing this you learn how to be productive and enjoy the process of programming, and as you understand more your projects can become bigger to keep expanding your knowledge. Eventually this process converges and you end up with the magic combination of well-developed skill and the motivation to keep building things. Then the projects stop "failing", and programming becomes more about making things than about learning to make things.

And the crazy thing is that this method scales pretty much infinitely. Case in point: SerenityOS by the absolute wizard of a programmer, Andreas Kling. In the past few years, the guy built is own POSIX-ish operating system from scratch, including a 90s style window manager, text editor, and...a working web browser. I've seen a few efforts in the past of individuals trying to make their own browsers independent of the handful of corporate-mantained engines that are around now, and they were all abject failures. None got even close to compliance. But the SerenityOS browser recently passed Acid3, a feat no small-time independent browser engine has claimed. If you think about it, it sort of makes sense that all of the previous browsers didn't make it. Imagine taking the traditional approach to designing a browser. You split up the W3C specification into parts, plan out the order you're going to implement things in, design tests so you can make sure things are working as they should, and then you get started. Little by little, you grind through the miles of dry W3C specification that makes up the web. It's a death march. Nobody could do it. If you look at the method Andreas uses, he didn't plan the SerenityOS browser like that at all. It was built incrementally, initially supporting only the simplest of html pages (and not correctly! there were many places where the spec was only loosely followed). He posted a video of a session where he hacks on the browser to support just enough of the spec to log into discord. It's exciting, if maybe a little silly, but it demonstrates how programming with small, ad-hoc goals that keep the project interesting can achieve things that a more disciplined approach fails to reach every time.

Sorry for the wall of text, this turned into a bit of an exposition dump. My point is that hitting a wall isn't a reason to give up. I think as a community software people tend to make recommendations to beginners as if the learning process is something you can speedrun, when in reality that only works if you know what you're doing, which by definition, learners don't. I used to be a champion of the "just sit down and grind until you get it" approach, and it took exposure to a lot of really smart people taking a different approach for me to even think about throwing it out, but it's been huge, at least for me. I don't think the OP wants to quit programming, if they did they would simply have given up without making the post, and I don't think "maybe you should quit" is the right answer.

Link to comment
Share on other sites

Link to post
Share on other sites

Make sure you keep things in perspective. Becoming an true "expert" at something takes years, not months. The good thing is, you don't need to be an expert to get started or get hired. I don't think anyone gets to the point where they know how to do everything from memory, because they've done so many projects. I'm a principle software engineer and I look things up all day every day... I also find React horribly confusing and annoying. I much prefer working on the back end, developing APIs or systems automation. When I do make websites they are generally pretty basic, just to get the job done. I let people who enjoy things like React work on that side of things. I also work with programmers who are much smarter than myself who are impressed by my junky little sites, because it's not a skill they have even explored, because they are doing low level OS coding.

 

In terms of the projects you're choosing, they seem generic, like they were picked from a list of projects you're "supposed to" make. I think the real key is to find something you're interested in that will help you (or people you care about) in some way. When I was in college I had some programming classes, but they were a means to an end and while I did ok, it never "clicked". It wasn't until I started working at had some problems in front of me that it seemed like code could solve that I really dug in and started solving problems with code. Things improved from there. It was when I took that code that worked for me, and wanted to package it in a way that my whole team could benefit that I leveled things up more. Over time things improved, but I still feel like an imposter most days. I think most people do.

 

Don't think about getting to 500 lines. Start small with something that's useful. Then think about features to add to make it more useful. Eventually, it will grow and grow until you have a pretty decent sized project. PCalc is a example of such a project. I saw an interview with the developer and it started as a simple calculator program for him to learn during college, if I remember correctly. But he kept working on it, and anytime he wanted to learn something he'd do it with PCalc. Desktop, phone, AppleTV, Apple Watch, etc... he put that silly calculator on everything, just because he could. When he wanted to learn 3D, he made an About screen that was it's own app where you could drive a little car around in this sim world (there is something like this in Excel '97 as well). Pick a project that you like, that might have some legs, and see how far you can take it. I think that's the best way to learn. That way you're running into problems and solving them vs following a template thousands have already followed.

 

And at the end of the day, if you have seemingly tried everything and just simply don't enjoy it. That's ok. Maybe there is another thing you'd enjoy more. That's cool too. I've often thought knowing how to code would be an great skill to have on the side. Where the main goal is to do X, but you make it faster and easier by adding a little code into the mix. It doesn't take much a lot of times. I'll take a 4 line script that saves me days of effort over a 2,000 line project that isn't too useful, any day of the week.

Link to comment
Share on other sites

Link to post
Share on other sites

I'll add a few cents here,

 

Using a tutorial is advised when starting with programming. It's not a bad thing, even professionals who have worked years and years use them to get up to speed about something new they are learning. I do it all the time as well. I also google stuff for work all the time. Because whatever you're planning to make (especially when you're just starting out) someone out there has done it before and posted it online. Make use of that. Copy/pasting someone else's work is not necessarily a bad thing. Just understand the code you're pasting and change it to your needs.

 

You say you learned bootstrap however in none of your projects there is any correct use of bootstrap. If you want to make use of bootstrap in the correct way you start with the grid and go from there. If you don't use the grid you're not really using bootstrap.

<div class="container text-center">
  <div class="row">
    <div class="col">
      Column
    </div>
    <div class="col">
      Column
    </div>
    <div class="col">
      Column
    </div>
  </div>
</div>

Every site you know that uses bootstrap uses this in some way. It immediately makes your site look better and responsive. Bootstrap is also loaded with classes to make it easier and faster to build your site. These you won't learn overnight, it will take time, took me years to learn most of it, and i still have to look up things every now and then. Which is fine, it's why they made the documentation in the first place.

 

The projects you posted also don't really look that bad. All they need is the correct classes for some of the components to make them better. For instance the buttons, add the classes "btn" and "btn-primary" and they will look a lot better.

 

So my top tip for you if you want to continue with programming is this: If you're going to use a framework or toolkit like bootstrap, read the documentation on how to use it. It's there for a reason, you won't learn it if you don't read it. Or if you want it more straight to the point, RTFM. Sometimes it really is the answer to your questions.

 

Also, if you really want to build websites, make the developer console your best friend. You're going to need it. Not just for your own sites, you can use it to check others to see how they do things.

I have no signature

Link to comment
Share on other sites

Link to post
Share on other sites

On 1/20/2023 at 10:35 PM, shivajikobardan said:

do you have a micro level roadmap of what to learn ..so that programming becomes easy?

I did. 

Do you want to try it or do you want to mope about for sympathy? 

 

Here ya go:

On 1/20/2023 at 5:18 PM, fpo said:

Did you watch a YouTube tutorial on react? 

 

I was using angular and there's a long YouTube tutorial on it that really helped me. 

 

Otherwise codecademy should have something on react

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

There is so much good content here, but I'll give my opinion based on my experience, replying to everyone is too hard, it's too hard the same hard way you're doing it wrong.

 

I think that your major problem is that you followed a CS degree, many Devs don't have a CS degree, even software Engineers, it doesn't mean they are the best though, but there is a chance to be the best even without a degree, which underlines why you are feeling miserable.

 

As far as I know, CS degrees are for making money, burn you out and then trash you out in the field without having a clue on how the industry is, if I only could find the article that talks about it...

Ok the math and physics, but really, will you work in science? Most probably not, you're confusing the industry with academic research and no one briefed you about the life out there.

 

Anyway, do you like WebDev or coding at a certain scale and scenarions?

1. Algoexpert.io (It has all you need in the industry, a bit pricey, but worth every damn penny. You'll be successful at some point.)

 

2. Udemy??? Never heard of that? I can recommend the following:

2.1 https://www.udemy.com/course/the-complete-web-development-bootcamp/ (It seems a good resource, she rocks at teaching, but I don't have direct experience)

2.2 https://www.udemy.com/course/100-days-of-code/ (if you are into Python and Data science mainly, but there is also the part for WebDev, I just don't recommend Python for WebDev, that's all)

 

3. Coursera? EDX?

Never heard of those? Seriously? Good, they are just business crap for Engineers, in most cases, just a few things are made properly, do you know why? Because the best courses advertised as Degrees or nano-Degrees come from Universities 😄 .

 

 

 

Edited by temdev
Link to comment
Share on other sites

Link to post
Share on other sites

One big problem that me and someone else here noticed is that you try to remember things on top of your mind (pardon if that's not the case).

Just learn and practise real world scenarios or  things that make sense from a software engineering point of view, never try to remember things, process or a lot of text of any kind.

You just need the how to, which is a big difference, it's probably 20x less informations if not more, difficult to say.

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

On 1/20/2023 at 10:02 AM, shivajikobardan said:

I'm in the verge of giving up programming and wondering what could I do before I give up to make sure I did what everyone did before giving up

 

Write in C.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×