4
16 Comments

Looking for some guidance in the coding world.

Hey everyone,

I'm new to IH - found it watching some app devs on youtube as this has been a new interest of mine and boy am I glad he mentioned this forum.

Essentially I'm brand new to coding, the wider scope here is that I'd really love to start getting my feet wet in coding but it's quite intimidating at first.

I've spoken to an acquaintance who codes and he suggested starting with a back-end language (python) and to move towards a front-end language if my goal is to eventually build an app.

I'm still unfamiliar with the differences between coding languages and their uses. I'd love to hear from any back-end or front-end devs and your journey on starting to code.

P.S: I'm going to be self-teaching myself code (through udemy courses, youtube, etc) unless someone has a better vehicle to begin learning code... or someone has free time to kind of guide me on the right path.

I'd appreciate any feedback. Thank you so much!

on December 19, 2019
  1. 1

    Hi Zakari, first of all I think it is great that you are taking this journey. Also, I can help you to learn to code. I think that it would be mutually beneficial and I wish I had that opportunity when I started.
    I started coding when I was 10, I am 38 now!
    PM at your convenience.

    1. 1

      Hey,
      Thank you, I'm really excited to start this journey! However, I'm not too sure how to PM someone on IH haha

  2. 1

    An application is generally broken into two key areas, the front-end that the user sees, and the backed which would be things like the server and database that the user will interact with but generally doesn't have any visual into. In many cases, you'll hear people describe languages as being a back-end or front-end language, and this is what they're referring to. That's not a to say a language can't do both, Java for example is used on a lot of back-end systems but it's perfectly fine to build a UI with Java as well.

    Python is generally considered a back-end language, and a pretty easy to learn one at that. I've seen it suggested as a first language, and I think that's a pretty practical choice. It has a lot of uses, and is being used a lot in stuff like data science and machine learning.

    On the Front-end, the current language is Javascript. Really, it's used for everything from mobile apps, to desktop programs, and if you want to build anything that runs in a browser then you're going to be using Javascript. If you want to be a front-end developer you need to know Javascript period. It's also gaining a lot of share for back-end uses, so it sort of serves a dual purpose of being able to easily do both with it.

    If you've already bought a Python course I'd say stick with that. Python is a solid language, and will give you a good foundation in programming. Javascript is a bit quirky, and while it's easy to learn I hesitate to suggest it as a first language in fear of developing bad practices. I know I've built a few that took some time to unlearn when working with other technologies. I would still give it some thought after you've worked through the Python course, especially if you want to work on the front-end.

    Also note that generally the first language is the hardest. Learning to program can be difficult, but once you get it learning the syntax of other languages is much easier, so don't think it goings to take 2x to learn both Python and Javascript.

    Sorry to hit you with the wall of text, if anything is unclear or if you have any specific questions happy to answer them!

    1. 1

      I appreciate the lengthy reply as it's extremely clear.
      What I've just seen from a youtube video is that Math is a huge aspect of programming - unfortunately, that's probably my weakest point.
      From my understanding of backend & frontend, i'd imagine frontend uses less math & algorithms??
      Also, I was initially looking more at frontend and UI but as you've mentioned, Python will be a good backbone and I'll hopefully move forward into frontend from there.
      Thank you so much for taking the time to explain!

      1. 1

        I think foundationally computation is built on mathematics, but the amount of actual math you need day to day is minimal for the majority of stuff. I'd say in the vast majority of cases high-school algebra is about as deep as you need to go. The only times you need more than that is if you're working on something very specialized. Writing custom graphics engines for example require a lot calculus and linear algebra, but you could go an entire career never needing to worry about that as in most cases the existing solutions suffice.

        Algorithms are another thing that I feel are rooted in math, but are generally easy to understand without a deep mathematical background. You'll typically hear about algorithms the most if you're interviewing for positions, but in practice won't use very frequently as many of the common ones are already built into the language. A good example here is sorting, there are dozens of sorting algorithms you could learn, but in practice every language has a built in sorting function that will cover 99% of cases. If you're looking to get a job though this is something you'll have to tackle as a lot of interviews are heavily algorithm based. I'd say back-end is more algorithmic heavy, but front-ends are becoming more complex and this knowledge is starting to become expected of all devs. This is weak point for many self taught devs (myself included) as it's not touched on much in day to day work and is generally something covered in university classes.

        1. 1

          Again, thank you so much for the clearing up.
          Do you mind if I ask how long have you been programming given that you're a self taught dev yourself?
          Any tips or tricks that helped your learning curve?

          1. 1

            I've been programming for about 8 years at this point.

            My advice is just to stick with it, it's a bit of a slog at first, but it quickly gets better once you can actually start building stuff. I'd come up with a simple goal project, and start looking to implement that once you get passed the basics. Something like a TO-DO list is simple, but it will force you to learn a lot in the process. Once you're passed the basics this is something good to work towards.

            And never stop learning. This field changes quickly, and it's so broad that there is literally no way one person can know everything. It's okay to feel a bit overwhelmed at times, and the more experienced you get the more overwhelmed you'll feel once you start to understand the vastness of what you don't know. That's okay, as long as you keep learning what interests you then you'll be fine, no one expects you to know everything.

            1. 1

              Awesome,
              One last question, sorry I don't often get such extensive and clear answers haha!

              Would you say that the two major options for programmers are:

              1. go to school in computer science and apply at a job.
              2. self teach yourself and create your own app/software/etc?
                Essentially what I'm asking is... I'm trying to avoid school at all cost, I've got one advantage right now and that's time. I want to utilize the best I can and eventually use coding to self-sustain myself.
              1. 1

                Right now there's also a third option which is bootcamps; they are kind of like an accelerated school that focuses only on programming. There's a lot of mixed opinions on graduates of these programs; personally I've worked with a couple and they were great. However, these were the type of people that were extremely motivated, and put a lot into the program. I can see people just trying to get into the field for the $$$ and putting in the bear minimum then sucking on the job. I think the problem is worse here as 3-6 month bootcamp is a lot easier to fake your way through than a 4 year university, at the very least on the commitment front.

                That's what I think it comes down to, you get what you put in. Being a self taught developer is possible, but you need to work just as hard as someone going to school. No one is give you a pass just because you didn't go to school, they're going to expect you to be just as good if not better. This requires someone who is motivated enough to put in the hours on their own and work hard at it.

                One thing to keep in mind also is that a computer science program at school gives you a good foundation to build from, this is something that a lot of self taught developers lack. This makes it harder for them to ask the right questions and talk about computing in a shared language. Being able to understand how to even approach a problem is something you'd learn in school, and isn't something that is easy to pick up on. I've probably wasted tons of time just because I didn't know how to ask the right questions to find what I was looking for.

                My advice here is once you have a good grasp on the basics start looking at courses for popular college programs. Many of these are available online, and can give you a good sense of gaps in your knowledge that you missed being self taught. This isn't strictly necessary, but can really help round out your development knowledge. Whether you're looking to get a job or build your own software it's very helpful to have a deeper understand of programming.

                1. 1

                  You're amazing man...
                  Just wanted to thank you tremendously for your input and your feedback on all of this.
                  Looks like I've got a steep hill ahead of me, I'll be getting down to it.
                  Thank you.

  3. 1

    Programming is a tool used to solve problems. This tool as a handful of rules that are shared among the various languages. Once you learn these rules, picking up a new language will be easier. Hence why many say that the language you pick first “doesn’t matter”.

    https://teachyourselfcs.com/ has many great resources that focus on these transferable fundamentals.

    Feel free to send me a message if ever need someone to talk about the subject. Good luck!

    1. 1

      It's really quite overwhelming at first haha
      Would be nice to have a contact with someone familiar with the journey i'm looking to pursue.
      Thank you so much, I'll definitely be keeping in touch!

  4. 1

    Python is a good option. It's a good as a learning tool, and also very usable for real-world applications (unlike classic "teaching" languages like Pascal).

    Another option to look into is Javascript and HTML Canvas element. Nice thing with this combination is – you can build something visual, something you can show people by sharing a link. As a random example, an animated Christmas card with falling snowflakes over a background picture.

    1. 1

      Thank you so much for your reply!

      I'm currently enrolled for a Python udemy class to get my feet wet, I've also purchased an iOS13 & Swift 5 class, thoughts on that??

      1. 1

        I don't have experience with Swift personally, but I think it's good to get a quick "feel" for various technologies, and see what interests you.

        1. 1

          Thank you for your feedback:)