Tuesday, February 18, 2020

indie learning curve -- YOU KNOW ENOUGH, let me prove it!



The Problem:


Language Learning Curve/Barriers Suck A$$

-- However; this isn't what the F you are experiencing. You are having a coding-learning-block ( it like writers block but far worse)

The idea here is that you 'feel' overwhelmed because of all the things you have to learn in a language that you tell yourself you have to learn "in order to use it".

This also takes on a semi-physical exhausted feeling.

Worse yet! You already feel mentally fatigued just trying to deal with real-life stresses and issues.

Naturally when you try to learn a language or a software then you get easily overwhelmed and begin feeling like you can't do something.
This last one is total BULL_S...! because you darn well CAN do this!

You're just trying to do it in a way that doesn't actually help you get it done. That's why you feel that way you do.


*COUGH* I said: {"" You're trying to do it in a way that doesn't actually help you ""}


How do I know; well, we have all been there. Myself many many many times especially with trying to learn java or C++

  1. We decide to learn a language so we can build software or make a video game.
  2. We try to learn the language but after a day or two of that highly confident feeling, we begin to 'feel the weight' of the depth of the language
    And that makes us feels like it's s00 big and complex that we begin to feel 'how' the language is more convoluted and obfuscated than we thought we could handle.

  3. We go out and eat french fries, drink soda, eat treats and snacks, watch youtube, tv, search the web.....
    Telling ourselves that it is for the language so we can get into it and understand it. Because we are going to do it...... but.....
    in general; we don't get hardly anything done because in the end, we feel that "the language's complexity discouraged us from trying"
  4. we get heart hurt ;..-(
  5. We waste so much time trying to encourage ourselves to get in gear and just go for it that we drive ourselves and our loved ones COMPLETELY NUTS. ( mostly us )
  6. (there is no 6 because we are superstitious, no?)
  7. We start trying to seek approval from our loved ones so many times that we just seem like insecure little kids *facepalm*

    HEY this happens and even to you so don't give me any s..t over it cuz you know i'm right and we have ALL done it!

    *sadly i actually am right and I discovered it by looking at myself as well as others at places like barnes and nobel*

  8. When our loved ones loose faith in us; we don't realize that most DON"T Actually loose faith in us.... but it feels this way because we lost faith in ourselves....
  9. The real world reality is that our loved ones are tired of saying nice and encouraging things to us and even tired of giving us anything we need only to have us Still feel insecure and seeking approval .
  10. ** worse of all is the starting over time and time again when we try to start again.... so many barely started wheels all going nowhere slow **


^-- well SCREW THAT!!



I now know how to describe what to do to help you and myself!!




The ANSWER :


The answer is s0 simple that it seems wrong, at least until you go for it.

Essentially; we must focus on two things:

1: The basic requirements/interface of the language in order to get your program to run

and 2: the basic fundamentals of the language itself but leave the advanced stuff to later down the line


IGNORE the advanced things just for now.  If you do find something advanced that you'd like to be able to use then just write it down and come back to it after you've written your program.

There are many examples out in the world of how to get ourselves ready to get things done but without sacrificing time by doing too much unnecessarily.

Here is my absolute favorite, because javidx9 explains what I found myself starting to do more than once over the years :



(disclaimer: no one asked me to promote their videos or content, I do so at my own accord)

What we learn here is that we don't need to use every tool in the toolbox.

I think it is best to avoid learning every tool in the toolbox "before" starting to write our software.  We don't need every tool/feature for everything we ever make.

What We Need To Do Is:

Use the right tool for the job, not all of the tools.

Therefore we get things finished and ready for production much faster.

Additionally... As for any features or advanced coding we discover or want to learn about or find to implement; these can be done later or better yet as a next major version release of our software!

Our Key Benefit is that we get the job done and we don't have to overwork ourselves into a corner of self-doubt or self-loathing ever again! 

Over time as we get very familiar with the basic tools in the toolbox; the bigger and better tools can be looked into and added to our tool belts.


We need to learn ( in any language ) is the "basics" of these:
  • conditional statements --  IF THEN ELSE and TRY CATCH
  • loops --  FOR and FOR EACH and WHILE
  • functions
  • class systems ( if any )
  • memory allocations / Proper memory clean up efforts
  • pointers / function pointers (if applicable)
  • inheritance / polymorphism concepts/techniques


NOTE that I'm not saying learn everything about them; I'm saying learn the usage and purposes of the basics and immediately start writing code!

Get your head wrapped up in them and then after quite a while when you have been able to take these for granted -then- start expanding your knowledge with more clever and advanced techniques.


LIBRARIES - what about libraries :


Libraries should be used by following the same rules I am saying here.

In short; pick your libraries carefully and whatever you do DON"T USE EVERY TOOL the library gives you access to.

^-- Save that for after you've used the library enough and gotten familiar with it enough that you can then start expanding with other parts of the library.


what about SDKs/Engines :


In addition to what I'm saying in this blog post here; if you plan on using a SDK/Engine then you should also learn about how to interface your code as well as interact with the SDK/Engine.

SDKs/Engines like UnrealEngine have been designed with the expressed purpose in mind of creating a large codebase that you can then use to achieve a disired result such as a video game.

You'll need to learn about those interfaces but you still don't have to learn every single thing nor implement every single thing.

So go and pick what features and capabilities you want to use out of a SDK/Engine and then focus on learning that before doing anything else with it.

This will help you get the basics down and enable you to be more capable of interfacing with the SDK/Engine as their developers had intended you to use it.


...


Over time; I hope to make some videos or maybe more web page tutorials for how to achieve our desired results! :-)



For now; check out this book by Josh Lospinoso :




This is quite possibly the greatest C++ book ever written for any level of programmer.  If you are new to C++ or if you've become a intermediate level programmer; this book is for you!  


(disclaimer, no one asked me to promote this c++ book, I do so out of my own admiration for the way he wrote this book to make sense for people who think like I think.  Thanks Josh! )




When I was a kid; I used my Tandy Color Computers to write programs.  There were features like POKE and PEEK and quite a few others that I didn't give a second thought to.

And yet.... I was able to write extremely good programs.

So for C++ and JAVA; why learn about namespaces? or Templates?

These are extremely powerful features of the languages but you don't "have" to learn them in order to make great fantastic programs!

Of course they will help in may ways but until you need these ( and other ) advanced features; just leave them be for the time-being.


...


This is my best advice I can give to myself to help keep my ar$3 on track.


I hope this helps others, let me know in the comments below if I have helped you in any way, I'd like to hear about it. 








  >  /end of line/ _