Depressed , Overwhelmed and Cheating

Completed 2 weeks into my web development learning Journey . I finished the basics of html and css but as I move forward into using bootstrap I find myself simply cheating as I am always copying code from the bootstrap reference docs or from Bootsnipp and playing with the code until it gels well with my page layout .I am yet to get to the point where I can build things using bootstrap from memory. The multiple class declarations for components like navbars such as " nav navbar-default" keep getting me confused at times . I feel overwhelmed by the fact that I keep forgetting which class does what and keep going back to the docs often. Is this what developers generally do , copy code and modify it to their needs or I need to change my approach.
Yet to begin with java script , have a long road ahead.

6 Likes

It’s totally fine to copy code as long as you attribute it in your code with a comment and a link back to where you found it.

We discourage blind copy-and-pasting. I would recommend you take time to try to understand what the code does, and even manually type it out.

Finally, don’t worry about retaining concepts. All of these will come with practice. I wrote about this here, and you may find it helpful: https://www.quora.com/I-worry-that-I-wont-be-able-to-retain-the-skills-Im-learning-on-Free-Code-Camp-long-enough-to-master-them-How-can-I-overcome-this/answer/Quincy-Larson

49 Likes

Hey,

I’m also in the early days of learning. I was suffering from the same memory issues but like any new subject i’d say this is pretty normal. Although everyone is different, I have found that going old school route and writing notes down in a book is the best way to keep track of useful information. I’ve found this particularly useful as I learn from so many different sources - occasionally that really useful bit of css you found in a 40 min you tube video needs to be written down unless you want to search through your video history!

Best of luck with everyone and keep coding.

George

10 Likes

don’t worry about copypasta, that’s WHY we have opensource code banks. Ask Bill Gates and Steve Jobs about “cheating/stealing” code …

11 Likes

The key to understanding and ‘remembering code’ isn’t taking better notes. If you took notes on everything you learned you’d have a billion pages of notes, literally. It also isn’t memorizing it either, you have enough to memorize. The key to remembering things is to truly understand it from a ‘low level’. If you can achieve this with X topic, you’ll find that you can recall things about X much better. Build 20 apps using bootstrap and I promise that you’ll be able to go a week without building one, and you’ll still be able to recall how to setup a nav bar or a form or whatever layout your trying to achieve. It’s all about sharpening your skills, honing your craft, keep working at it every day and it will get easier, eventually.

Also, coding is hard. If it were easy, the market would be over-saturated with ‘GOOD or GREAT’ programmers. It isn’t. It’s filled with lots of lazy and mediocre ones. Learn to remember this and learn to live outside of your comfort zone, i.e. learning to deal with frustrations on a day to day basis, knowing it’s part of the game, and theres nothing you can do about it and you’ll find it will become a little less frustrating.

Finally, as @QuincyLarson already said, I would highly discourage you from ‘copy pasting’. Even class names for bootstrap. Practice makes perfect, you need the repetition. Also, copy-pasting almost never enhances your understanding of what’s happening on a low level. This not only makes it harder to remember in the future but also makes it hard to solve similar problems in the future because you didn’t learn WHY that code solved your problem.

Good luck.

28 Likes

People make jokes about this all the time friend



I FULLY agree with Quincy. NOBODY on this planet can remember all those semantics unless you have that amazing photographic memory 10 People with Photographic Memory If you are a normal person like 98% of us then you have to refer to documentation! Mozilla Developer Network, BootStrap, Stack Overflow. I have copy and pasted but I always evaluate my code and try to reverse engineer it. We all have problems and need help sometimes, majority of programmers are happy to help you and give you pseudo code or example code. They are not giving you the answer they are giving you a roadmap to it! In High School I had an Algebra teacher who was top of her Texas ATM class, she would give us our worksheets and let us solve the problems in groups of 3! She said that style of teaching was more effective than anything she had seen and she was right, I found out my 10th grade year that I did not hate math and I loved the principles of it. Said that to say this, FCC guideline to finding an answer Read, Search, Ask. If you follow those in order by the time you get to a Google Search you should have your answer! I rarely make it to the asking part :smile:

19 Likes

Copy to your hearts content. It’s a skill! (choosing what is worthy of being copied)

1 Like

There’s no way anyone can remember all those Bootstrap classes in just two weeks. I always refer to the docs when I want to use Bootstrap components, and I always copy/paste what I need, but I understand how it works and modify it as needed. I’d say try to understand how Bootstrap works, and refer to the docs when you want to use something you can’t remember how to write from scratch. After all, that’s why the docs are for!

With something like HTML, CSS and JavaScript though I try my best to write everything from scratch, but sometimes there are stuff that I don’t know how to do, so I copy and paste them but I make sure to understand how it works, and modify the code to fit my needs.

EDIT: I just noticed there’s a copy button in the corner of each example in the Bootstrap docs. That says something, doesn’t it?

8 Likes

the O’reilly meme is AWESOME :thumbsup:

2 Likes

I need to deconstruct examples and see what happens when I change them. Bootstrap is very confusing until CSS is understood. There is an excellent tutorial that shows you step by step how to build a website in a folder on your desktop using HTML and CSS at http://learn.shayhowe.com/html-css/
This tutorial helps you understand how CSS works by building a website for an imaginary conference. After completing this, you can make sense of bootstrap and appreciate what it does for you (and therefore remember it easier). I actually wish I could find a similar tutorial for creating a website incorporating vanilla JavaScript, because the console isn’t helping to remember things, and starting off with frameworks hides too much. I need to see it in place to understand the use.
I would not copy/paste anything without understanding it, even then I would rewrite the code to ensure understanding. I have learned early on that you will never remember everything, but you only need to know where to find information, so keep good notes. Bookmarks and make use of comments in any code, make them like notes to your future self to remember what you did and why.
Good luck

5 Likes

There is absolutely nothing wrong with your approach. Lets think of it this way. You learn to walk by seeing your parents walk, another words you are copying what your parent is doing.

When you go to school, you learn the alphabets created by the linguist. You are then at that moment copying the brilliance of the linguist before you.

When you learn math, you are again copying formulas from famous scientist. Do we ever think about giving thanks to sir Isaac Newton every time we talks about physics?

As a matter of fact, the whole civilization advances by copying each other’s work.

However, there is a limitation as to how far you can go with copying. For instance, you can’t claim any work that you haven’t done and say that is yours. You also can’t copy something and say that you can replicate it when you clearly couldn’t.

It is okay to copy and study its content. At some point, you will start writing your own once you understood what other programmers have written.

3 Likes

Spaced repetition is your friend. What worked for me was starting every study day with looking at the FCC map, pick one exercise, reset the code and have a go at it again. Pick at least one exercise from each category. This is good both for your confidence and for your learning- You’ll start noticing how concepts and code syntax starts to stick.

8 Likes

A coupla good passed through any material has always helped me understand it more…

Go about 1/3rd of the way down…there’s a nice venn diagram on the various stages of getting to Mastery on something: http://www.businessballs.com/consciouscompetencelearningmodel.htm

1 Like

@DarrenfJ Thanks for posting the article. Looks like a good read.
@vineetkdar I think the overwhelming feeling you have will last forever if you keep learning new things. It’s just part of the cycle of realizing how much you really don’t know about a subject. Maybe set aside 30 minutes a day to code a webpage from memory using the bootstrap terms you find to be the most important. Maybe start with coding the navbar everyday from memory.

2 Likes

In order to retain better, I’d recommend Anki. Using flashcards might be very efficient. As far as I know, space repetition was proven to be one of the best memorization techniques.
Sometimes I also use Journey - a diary application where I write down all the important pieces of information (snippets, explanations) with links to the sources where I read this. That sounds nerdy but I hate it when I remember reading something important but don’t remember where exactly.

Really needed to see this. This advice would be definitely followed.

I’m a teacher, and the research has shown that making notes by hand actually puts the info into a longer-term memory slot faster. By referencing those notes, you reinforce your own brain learning because it recognizes your own handwriting and the context in which you made those notes.

Here are some suggestions for specifics on learning efficiently:

  • take notes by hand

  • frequent spaced review (read your notes over your morning coffee for example)

  • start your session with a repeat of a lesson (vary the concepts and try not to look at your notes) as @Magwit mentioned!

  • if you have troubles with your repeat lesson, dig a little deeper in code docs to reinforce. Make a note to revisit this lesson soon.

  • learn on a regular schedule - daily practice is better for your retention than cramming

  • practice in the same physical environment if possible (cues your brain)

  • contrary to what you may think, we are unable as humans to multi-task. Study after study has shown that multi-tasking or context switching ruins a work session - down to only 5% productivity for example with 4 tasks. So listening to music, having notifications on, receiving texts, and doing FCC = 4 things right there. You will get more done if you turn off everything for 1/2 hour - research proven!

  • focus on the process, not the product. Research has shown that people who focus on the process achieve the product faster and more easily than those who focus on the end goal.

  • focus on what you’re doing right. Research has shown that people who focus on the 8 right out of 10 do better in the future than those who try to correct the 2 wrong out of 10. This is opposite of how we’re conditioned to think in school.

  • know that learning occurs in layers. The first time you learn something it’s at a fairly superficial level. The next time you dig into the same topic, it’s at a deeper layer, and so on. This is how we learn the nuances over time.

Hope this helps you out - and remember by getting discouraged and reaching out, you’ve helped others in the same boat. Stay strong and stay positive!!

20 Likes

I am really happy to see such a positive response to this! I have seen several chat messages in regards to this section of fCC with a similar feeling. I am at this point now looking for direction. Thanks to @vineetkdar for starting this thread and thanks to all of you who have responded. This has been a big help and a nice confidence boost to see that I am not alone.

7 Likes

Reminds me of the Navy SEAL saying “get comfortable being uncomfortable.”

Cheers for sharing your advice.

1 Like

In all fairness 2 weeks is definitely not enough to remember all of the bootstrap naming conventions! And even in production environments you’ll be doing just that - look up references, trying out different bits, tweaking, etc. I mean just doing that is the exact right thing to do. And look at it this way - do you want to spend 2 weeks learning all the syntax for bootstrap when all of a sudden you have to now learn something like Bulma or Flexbox or -insert shiny new things-? Or should you spend your time learning fundamentals, like how boxes align on web pages, how colors can be manipulated, etc.

I’d say focus on the latter - learn the ‘big ideas’ behind everything and leave syntax to the documentation that you’ll inevitably have reference due to the diversity that’s natural to the field. And, for the future, do this with programming languages. Learn what variables and functions are, learn how to reference things properly, learn programming patterns, abstractions, etc. If you learn this then you can just pick up any language and use it easily (with the exception of looking up how the hell you implement a for loop in X language).

(I have 3 years experience in a professional software development environment)

4 Likes