Adventures in Coding While Brown Blog

  • Introduction to Javascript Programming

    January 2015 I started the journey of teaching myself Javascript and now, in January of 2017 I finally feel like I have enough of a grasp of Javascript that I can honestly say that I don’t know it, like, really know it. I do, however, know what to look for syntactically and that puts me in a position to go through this tutorial and really hammer down the technical terms for concepts I’ve learned over the last couple years.

    I want to first and foremost thank FrontEnd Masters for giving us at Learners Guild Oakland the chance to utilize their tutorials in order to complete this 5 week long Front End Masters challenge. We’ve taken the next step to upping our skills here at the Guild and I decided to start with the basics. I find that my learning habits are cyclical. I will be introduced to a new topic and immediately want to jump ship. My eyes gloss over, my brain floods with useless memes and I usually feel my body shut down for a system overload nap. I recover from that influx of information and circle back around to the same concepts a couple weeks later, only to layer on levels of understanding on top of the basic foundation I set down previously.

    This blog will be focusing on some of the basic aspects of Javascript programming, to solidify the concepts I started learning a couple years back and fill in more gaps in my foundation. I’ll run through the building blocks of Javascript real quick to get you up to speed:

    Variables:Are used to store data during the execution of your program. Variables are containers for your values aka data. Variables are declared with the keyword var in ES5 and let in ES6

    Values/Types: Values are the bits of data and every value has a type, which tells you the role that it plays. There are six basic types: numbers, strings, booleans, functions, objects and undefined values. You can use the typeOf operator to find out what type of value it is that you’re working with.

    Operators: Operators perform actions on values and there are 7 arithmetic operators: + addition, – subtraction, * multiplication, / division, % modulus, — decrement, ++ increment.

    Conditionals: Conditionals are how we get our program to make decisions. You’ll use an If statement to set that up.

    Loops: Loops repeat tasks until the condition becomes false. If you created a loop with a condition that would never evaluate to false, you would be sent into an infinite loop. Remember, a loop will run forever unless something stops it, whether it be a break or the condition evaluating to false.

    Functions: Functions organize your code and make it easy to use blocks repeatedly. You can reuse a function to perform logic in multiple places to keep your code streamlined.

    This is all just scratching the surface of Javascript. It’s only the beginning!

  • The Wonderful World of Open Source Software

    This week I decided to dig into OSS projects and try my hand at contributing to larger code bases than I am used to working with. I opened three pull requests by the end of the week, each on different projects with varying skill levels required to complete. I wanted to give myself a bit of easy issues to work on at the beginning to build a little confidence in what I am doing. To be honest, now that I am on the other side of the "dilemma", my first step feels like a lot of unnecessary fretting and worrying. The mystique of OSS being this holy grail that I can only think and talk about without knowing has been lifted. It's amazing how welcoming some folks are when it comes to you taking time out of your day to help them get through some code.

    I am contributing to an indie turn based strategy game calledAncient Beasts by Frozen Moon.

    I have always loved the idea of making games, but never thought of myself as someone who could "do it". With some help from a couple folks in the Frozen Moon community that offered invaluable support. Someone (in another country, at that!) spent over an hour pair-programming with myself and another learner here at Learners Guild. That kind of support in the OSS community is huge, because it makes me want to do nothing more than pay it forward and keep taking issues in the game to make it even better.

    What I have to say to anyone who wants to break into OSS projects is this: JUST JUMP IN HEAD FIRST!!!!!

    Most of the time there's a community of Devs/Designers/Etc who are working on the code base on their own time and want to help others get to the point where they can contribute meaningful PRs (pull requests). Please do it. All this software needs as many eyes on it as possible to get these programs to the maximum level of functionality.

    If you ever find yourself having trouble jumping into an OSS project, let me know. I'm great at pep-talks.

    I've found that these strategies work for me when looking for a project to contribute to:

    1. I will look for easy tickets that I can cut my teeth on and build confidence.
    2. Choose 1 or 2 easy tickets and find a project that has a harder ticket to choose and oscillate between them all.-- when I get stumped on the harder ticket, I work on one of the easier tickets to shift my thought patterns around and refresh myself to go back into battle with my "hard ticket".
    3. I search for tags on Github that will filter out the exact kind of projects (on a wider scope) that I want to contribute to. I usually use tags like is:open label: easy/docs/first-time-contributors/novice

    You'll find that "easy" or "novice" tickets are sometimes not as easy as one would think and they give folks a good run for their money. Take your time to breathe and no work yourself up about the difficulty of your ticket. There isn't an issue you're going to run up against in the WWW that another developer hasn't come across (I know it's dangerous to make broad sweeping statements)

  • Dev Week Conference

    To be honest, I found the Dev Week Conference to be somewhat boring. I know, it’s hard to believe that being surrounded by all that up and coming technology you’d be bored. To be honest, of the talks that I went to, I didn’t feel like the presenters really knew who I was, why I would want to utilize the technologies they’re interested in, etc. There were a couple talks that I found really useful information, or at least information that I could get excited about.

    The Web Developer’s Guide to Virtual Reality:

    1) Neurosurgeons are using VR to practice. The idea that someone who operates on brains can practice in a virtual reality setting is phenomenal to me. I definitely never thought of utilizing virtual reality in that way. 2) You can go from being a web developer to creating awesome and immersive virtual reality landscapes.

    Here’s a little blerb about the talk:

    “Are you a newbie breaking into the wide world of Virtual Reality? No fear, I was too. In this beginner friendly discussion, you’ll learn how to go from a web developer with little or no knowledge of game development, math, or physics to creating full VR experiences for the Vive, Oculus, and Gear. We’ll cover how I made the leap, what resources exist to rapidly learn and start building, and chat about all of the mistakes I made. If you’re a web developer looking to get into VR using Unity, this session has your name written all over it.”

    Another talk that I found super useful and interesting was…

    How to Get the Best Out Of DevSecOps – A Threefold Perspective

    First off, let me just say that they were offering a locally made lunch by the youth of Oakland. If you know me, you know that I can’t say no to free food. Especially if it’s masterminded by the yutes. I have a soft spot for teenage culinary skills, what can I say? Maybe I never grew out of my teen palate.

    Second, I learned a bit about how to be a better developer by incorporating DevSecOps into my informational tool belt. Being able to add security into your program earlier can help you cut down on the time spent on addressing vulnerabilities. This talk also highlighted the difference between Security, Development and Operations and how each team is intertwined and working with each other to create an solid product. These were the two talks that I gained the most knowledge from and influenced me in a way that made me want to learn more.

    Here’s the blerb from the second talk:

    “Join Colin Domoney, Veracode senior product innovation manager, for an invitation-only Lunch and Learn session at DeveloperWeek 2017. As a former head of application security at one of the world’s largest banks, Colin will share his knowledge and insights into DevSecOps, including:

    How to address gaps between security, development and operations teams What technologies and environments you need for automation and integration Practical steps teams can take when transitioning to DevSecOps”

    I would recommend going to Dev Week 2018 when it comes around the bend. Though I found parts of it to be dry and not speaking to me or my demographic of Software Engineer, it was very useful and opened some pathways in my mind that I am grateful for.