Photo by Simon Abrams on Unsplash
The First Entry
This is the first entry to my coding diary, this is the place where I share my thoughts, feelings, ideas, things I love and things I don't like about my journey into becoming a programmer.
Fear and Doubts...Can I Even Read?
I've been coding in Javascript for almost 3 weeks now. I've went over loops, variables, arrays, objects, the DOM and many exercises where I've coded along with the instructor to do simple little projects.
Here I was this weekend working on a simple RGB color guessing game. I shadowed the instructor and halfway through I realize that I didn't really understand the code that I was writing. I stopped the videos and try redoing everything that I've done so far but without shadowing the instructor.
Only after 5 hours and a few peeking into the solution document that I was able to get it to work...but still...while I am reading the code this morning, I'm still not sure that I understand what's going on in the javascript file and unsure I could do it again without any solution document.
Here is the codepen of what I built...I tried to take it apart with notes but it doesn't seem enough at this point.
Can I even read code?
That is the question that I am asking myself...
It's easy to code when I copy someone else on a screen but am I truly understanding what I am being taught? Should I move along and hope that things get clearer for me in the future modules or should I redo the exercise again and again until I can write it without looking into the solution document?
I'm tempted to do the later and just code until I get it before jumping into JQuery.
Thoughts?
Unlike with human languages, you learn programming languages by writing rather than reading. At first with the help of a teacher/tutorial. Then, as soon as possible, by writing your own mini projects.
Couple of hints that are quite obvious for experts, but might be useful for novices:
When reading code, starting at the top of the file is not always the best approach. Try to follow the execution order rather than line order. In your example it makes sense to start from the loop, since that's the first executed part that's actually doing something apart from initializing values.
When you try to understand the big picture, you should read the code layer-by-layer (kinda like BFS). When you stumble upon a function, you shouldn't immediately jump into it to understand what it's doing. Instead leave it in your mind as a 'black box' that you will open later, once the rest of the program on the top level is obvious. For this to be possible functions in your code should be simple enough to describe them in few words, and should be named appropriately.
When something is just not clear, or doesn't work as expected, it's time to dig deeper in DFS manner. Choose one input state of the program, start from the location in code close to where the problem occurs, but where the state of the program is still understood by you. Add print statements to display the values and check whether the values are what you would expect of them. Once print outputs are clear - move them closer to the "target". Repeat the loop until you've understood what's happening or bug is fixed.
For me at least, diagrams are immensely useful. You don't need full blown UML, or any standard for that matter, since you're the only reader. So concentrate on content instead of form. Try to visualize what connects to what in your code with the help of lines, squares, circles and squiggles in whatever matter you find convenient.
Try it, and let me know if you found my advises helpful. Good luck in your journey.
Yay!!! I've been waiting all day to read your coding post. I always have a lot to learn from it.
As a newbie in coding, I'm sometimes faced with exactly this same issue - getting into a tight corner when I try to put into practice what I watched in the coding tutorial or lesson. It is sometimes difficult and it becomes more complicated when I'm not even sure if I'm doing the right thing.
One of the ways I help myself is to rewatch the video or tutorials again and then read more about that topic online, watch more videos about it and see if I'll be able to grasp it.
Sometimes it's still difficult to comprehend, so I move on to another topic hoping that I will one day come across somebody who will really sit me down and explain to me how it is done in a more clearer way.
In other news, I've got a friend from India and he's good in python coding. Met him on reddit and he's been wonderful and teaching me well.
Also, I've been following your tips too @cryptoctopus and it really helps me a lot.
Thanks for this Diary, I'll be following it up to keep learning from your experiences.
Happy Steeming
Hi, I've been a web developer for years (HTML/CSS/PHP, not Wordpress) and have recently decided to learn Javascript - after years of using others' code via JQuery.
My motivation was to become more involved with Blockchain dev and really understanding what's going on in crypto. As Javascript will be an entry into bloackchain, and I already have a basic understanding of it, it seemed the perfect place to start.
But I, like was struggleing to UNDERSTAND the code, rather than just get it working. I was trying to teach myself via free content and experimenting (as I originally learnt HTML/PHP back in the day), but then came across a good course on Udemy.
It teaches Javascript, but through a thorough understanding of what's going on behind the scenes. I'm only around 15% to 20% into the course, so can't 100% recommend it, but I'd give the intro videos a watch and see what you think - I'm finding it very good so far.
I'm in no way affiliated to the author/creator, I'm just recommending you check out something I'm finding useful. On Udemy, search "Javascript understanding the weird parts" by Anthony Alicea (and good luck)
I have the course but it was too advanced for me. :-)
Now there's a coincidence! Yes, it is hard, but I'd say it's probably the best way to learn if you want a deep understanding. Even if you have to watch the early lessons over a few times and then look up supplementary content on the topics to get a better understanding. Might be slow progress to start, but you'll come out a better programmer.
Also, if you're like me, and learning in relation to crypto, I'd also recommend following @ivanli on Steemit.
Udemy is a good place to start learning programming. There are lots of courses there which are really good.
@cryptoctopus,
You did it well, it works perfectly! Now the question is you can't assure you are 100% readable this code and you understood it 100%.
Don't worry, you know with experience you will read it well. We all are not 100% accurate, it takes time to make that happen! Therefore, don't worry you made a good short program and it works perfect! Congratz friend!
Cheers~
Congratz
Repetition can be a good thing for memorizing, but it isn’t that good at getting understanding. Is There a way you can reach out to the instructor for a little more info on that module? It may prove worthwhile for him to add something to it for future students.
This is the first step, if you are understanding other's code, then yes, one day you will be able to write a complete program yourself.
I went through the course you're taking, it's good but I don't think so it's good to learn JS before you completely master HTML and CSS.
I would suggest to take this course first, a complete course where you will be developing your own website from scratch. This course helped me understand some basic concepts that I never knew.
And don't give up please. I dived into this coding stuff 6 months ago at the age of 29 and 7 months and I have been facing the same issue while learning PHP but I know, once I master this language, I will have a whole new world to explore!
When a small kid blabbers some syllables, just repeats sounds and tries to communicate by pointing his finger and repeating what he things he hears does he ponder the question:
"Can I even communicate?"
No.
Don't expect mastery to come within a few weeks. Trial and error is still the best way learn things. You may think you're beating yourself up over one small detail for hours, find a solution and think you took ages for such a simple thing, chances are you'll never forget that detail and it will bring you much benefit in the future..
Stay strong, keep going!!
I think that learning to code is like learning a New language. It takes a really long time studying it to understand It. It takes time and it doesnt make Sense for a while, but then come a time when It clicks, and It all makes Sense.
@cryptoctopus - Sir I'm a housewife & my knowledge about coding is pretty bad... I know little about HTML :) My husband is an IT professional... Having a busy life & a stressful life... But I can assure you Sir, he doesn't keep reminds coding... Google is the god of him... :)
In last few weeks you work hard, you are absorbing coding into your brain... It's not one day process Sir... My husband doesn't all inches of coding very well Sir... The practice made a professional coder through him... If he doesn't know he google... I think it works Sir...
+W+
For me, I can read and "learn" stuff and it doesn't necessarily stick. If I really want to learn something, I have to do it. Coding also seems like a subject that if you don't have a strong base for your knowledge, a lot of the more technical stuff might not work, since there wasn't a great foundation. If you want my opinion as a non-coder, I would suggest taking it slow (for now at least).
where did you failed? this simple program works well. how did you fail then? actually you didn't fail, but you are not satisfied. for me you made it well & impressive application works on javascript. congratulations @cryptoctopus
@resteemia
reteemed & upvoted & commented & followed
Fear is often a liar and big obstacle. Practise is most important when you try to accomplish challenging task or project. Will follow your progress and maybe get inspired along the way.
I think the best would be to fully understand each step in the learning process. Probably a person with a lot of experience in Java could explain you what is best, but for me moving along and leaving some lesson without understand it might not be the best.
Good luck on your coding journey!
Yeah!!!... I've been waiting for this day. I will be following you bumper to bumper... My zeal for programming is beginning to come up.
Not being a coder myself this is a shot in the dark but it sounds like you are questioning yourself.....don't do that.
I would say move on and see what happens. If you find out you missed something, you can always go back. Have some faith and belief that you processed what you were taught. I am sure it is somewhere within you.
We often do not know what we are capable of....at times, testing ourselves by just forging ahead makes us realize what was there.
Just keep practicing. It will come. You mentioned previously about hand writing on paper. Have you been able to do that? Even if you keep having to look at the solution document, if you find you are looking less often, you're making progress! Keep at it. It will come.
Thats is coding for you, the more you progress the more you know. The solution from my own end is that you should keep coding, as you progress the earlier stuffs become simple.
See the coding you are practicing if you help an instructor and see that there is still a detail missing.
That anguish happens to me that if I do not learn well that topic I insist until learning however is going to draw more time to learn the other modules, I suggest you continue advancing as on the way you can see the panorm in a macro way and if I remain doubtful in practice it returns to R Epasar, so continue man with his next module.
You could try to understand the functions better by having them print output rather than using them in the tutorial.
Try to guess what the output should be to determine if you are using it correctly and you understand it.
You could also try reading up on the built in functions themselves. Try to get a sound understanding of each one of them using the method described above.
When I was hacking at lua and trying to write my own functions doing this for built ins really helped me to be able to think in lua.
It is kind of like being in kindergarten and being given five syllable words on day 1. You need to understand the alphabet first.
Thanks for the post.
Don't give up.
Keep Steeming!
Have a look at something like https://www.codewars.com.
It's a platform to learn programming by solving challenges other users created. It's really nice for beginners and the challenges have different difficulty levels so there is something for everyone. But in general i would say programming is something you should practice often, at the beginning every day.
I agree, codewars is really helpful, because after finishing the challenges you can check the best solutions and get a few more insights.
Yeah right, this is pretty amazing. Sometimes you discover new ways you haven't thought of, which can be very helpful in your programming career.
Yor are right dear @parceval
im not even a code noob but I wish you persistence in eventually not seeing the code anymore but reading it. Is that even possible?
Move along. Your brain takes time to absorb this type of information. You need to be tenacious and it will stick soon.
In my opinion, and based on my experience - even when you.wrote the code from scratch without any guides or help - you most probably will need some time to comprehend the logic of the code you write yourself, and it is perfectly ok!
Usually the code's logic is complicated and following it might take some time - the important thing is that if you manage to understand the logic after giving it some time, helped by notes you wrote in order to help yourself in such situations - then you can move on safely- we learn how to code and not how to memorize code 😊
Now - I'd you feel like you didn't grasp the logic behind the code and you just copied the instructor without getting the logic - that's when you better go over the code again in o order to understand the logic, not to memorize it.
This is part of starting off. You’ll be copying a lot, second guessing your work and bewildered your code actually works. Seasoned programmers still end up in situations like this. The industry changes so fast a HUGE part of coding is barely grasping what your working with and still pushing you skills further.
Keep going through tutorials, try to slowly hand code things rather than copy/pasting(libraries and copy/paste is a huge part of coding big projects) and realize this is a skill that can take decades to truly master. For someone only 3 weeks into it the code you created looks amazing. Keep it up!
Guessing game and css is always fun.....we learn code by copying someone.,,it is part of process..best of luck keep learning...I'm learning too ...am on jquery.
coding in java is quite simple. first of all , you need to understand the rudiments , get to learn the basics and then carry on from there. Do not rush it. No one learns programming in a day.
I would advice you also get a tutor asides your online tutor, that way you can ask sound and important questions when ever you get confused so that when you are less busy you can continue with your online instructor.
I wish you best of luck as you venture into this interesting field of coding. Have fun!
What is this DOM?
Design of mechine ????
Great bro u r doing great .keep it up👍👍👍 .i have also fund of learning java programing but unable to go through it due to some reasons.
☺☺☺
@cryptoctopus
By the way i have created post on you through designing u have not seen it. Dont mind and check it hope u ll enjoy it ☺☺☺
https://steemit.com/cryptoctopus/@bitcoinist/cryotoctopus-snow-editing-and-live-text-editing
☺☺☺
At present almost all web pages contain JavaScript, a scripting language that works on a web browser visitors. Make web pages functional for specific purposes and if they crash for some reason, the content or functionality of the web page can be limited or unavailable
Yeah I see what you mean, this is sort of like being able to read a foreign language with the help of a dictionary etc. but not doing so great when trying to speak it casually.
Love the ideal and outcome of programming but to write a code is not just my thing. Well I'm going to follow you on this journey to see what I will get out of it
I'm sure you'll be able to read the code @cryptoctopus
I figure the best is completely see each progression in the learning procedure. Most likely a man with a considerable measure of involvement in Java could clarify you what is ideal, yet for me moving along and abandoning some lesson without comprehend it won't not be the best.
Good fortunes on your coding venture
Just stick to Javascript.
First, it's better if you're great in one language than good in 3 languages for example.
Just stick to one language and learn everything it can do.
Second, Javascript is language of the future, as most sites will use Javascript in the future.
Good luck with your coding.
I think you should practice more. You need to clear your fundamentals. If the videos are not helping a lot then you should try suffering other similar sites, you may find a solution there. If your fundamentals are not clear then you will face these kinds of problem in upcoming modules.
it's tough out there
I think you should understand coding rather than copying an instructor. Basic understanding of any broad thing such as coding is very important. For me I prefer programming. It's easier. It is like figuring out how the steps needed to do something. Coding is just translating that into a language the computer can execute.
Programming is actually a really social activity. I assume you would not be as good of a programmer as You are now if You didn’t have someone’s help, or perhaps I could be wrong. Each of my friends are good at certain areas so whenever I have a problem, I know which friend to ask. I also help them out in return when they have a problem. This is really the only way to get things done. And steemit community is the perfect example.
Do you know a perfect poetry can be made out of this post? All you need is to make lines and stanzas out of it and maybe some word play.
The key here is not being afraid of failure. Fail fast, fail often and learn from your failures. For coding as well as everything else in life, failure is how we learn to get better. If your steemit account is any indication of your life, you have made the most out of previous failures and are reaping the benefits now. Heep it up
Humans only learn something when they are interested in something or someone makes them learn something forcibly. I prefer the first option because it's a natural way of learning. However, there are some other factors involved as well. When it comes to coding, it's very logical thing. I know nothing about it but I know it's all about problem solving. Sometimes, it interests me a lot to do it but if I do so, I will learn it but this way I will take my focus off of the things that can't be postponed.
@cryptoctopus, Your journey is really good and I wish you all the best with you goals.
Steem On!
The tutorial you watching and documentation wasn't done in a day, it took the author months or even years to archieve that far, at least give yourself a kudos, there are many out there who have spent several hours looking at a tutorial file and still unable to understand what to do but between such a short period of time you have been able to pick up some steps and the intro not so new to you anymore.
The best advise would be to keep practicing till you master it, cause then others will just flow in smoothly skipping any now would lead to more confusion later on
First of all I like your post as a computer engineer.I was afraid when I tried to write the first code. We were trying to do something on a computer that I had never seen before. it was much harder than learning a new language. But when I did not give up and went on, I realized that it was very enjoyable.Do not give up, I'm sure you'll succeed.
Thanks for sharing @cryptoctopus
This is your first coding dairy, do your best with any job, success will come, hope you will go ahead with your work @cryptoctopus
You should never loose hope while coding.Be active on doing some projects.That makes you familiar to programming
No idea regarding javascript :) I just know a little bit C, C#. Good luck, I hope you will succeed!
you create a great post...and i think java script is a best programing language...
wow,,,that is a good job
Best wishes tO yOu dear
Language is always adventurus tO learn and write
Keep going on
Best of luck
And jquery is very helping lots of work is done already with the library files
I believe everything worth doing is worth doing well. So therefore it'll be nice to painstakingly redo the process until you get it.
You know that joy that comes when you finally get to know what you're doing..i think that's worth the patience and time..