Personal Iteration

It is difficult to believe that over a year has passed since I last wrote a post! So much has happened: I have moved to a very nice area that allows me to be able to walk to work, and into the best apartment I’ve ever lived in (there’s an outdoor pool!). In September, I went with a friend to Medellín, Colombia, and we worked remotely for a week. It was such a wonderful week of getting into deep work while visiting a new country. It only took a complete 180 degree career change and a move across the country to only start to accomplish some of my personal and professional goals.

I have been working at a software company as an Integrations Developer since March, learning Python, Django and SQL. I really enjoy how explicit and clean the language is. Perhaps programming concepts are finally coming together, and that is why I am enjoying the language, but in and of itself Python is a good language with which to work. I’ve learned what a datasource, datastore, and dataset mean and how to pull in third-party data out of REST (and even SOAP/XML) APIs. I have finished reading Clean Code , and am currently reading Two Scoops of Django, hoping to start a side project with a friend who is very much into ReactJS. We hope that, in working on a project together, we can learn from one another.

It is funny how past experiences lead to present and future ones. In my last job, I was building RESTful APIs from scratch, using Ruby on Rails, and now I am using APIs in this current job. Prior to my previous job, I was unsure of what an API even was! I look forward to this next year ahead, and to see what else I am able to learn and accomplish!

It sometimes seems that those around me think I am incompetent or don’t know as much as I should, because I am never afraid to ask questions. If I don’t ask someone who does know, I won’t know, or it will take a lot longer to learn. In the end, having that knowledge is more important to me than what people think of me for not having it at that moment.  Perhaps it’s an age thing, and I realize I do not have those decades ahead to “discover” as a 20 year old may have. I have also observed that many people do not ask when they don’t understand something, giving the façade that they know what they’re doing, when really they don’t have that understanding.

Once I know something, I know it.

This is one of the reasons I refuse to fall into the whole “Impostor Syndrome” trap; you can’t know what you don’t know! If I ever feel insecure about my career, I think about one year ago, and all of the things I have learned and am able to do now that I was unable to do before. And then I think about just 3 years ago: I was performing in Symphony Orchestras alongside some of the top artists in the world, yet was unable to sustain it because of a lack of opportunity (which keeps getting worse and worse, sadly enough).

Classical musicians are trained for perfection. We prepare for auditions like athletes, months in advance, in order to execute as perfectly as we can on the spot, in a brief moment in time. Being careless is not an option. I come from this mindset of having a high standard, and apply this standard to my current programming career and life. Unfortunately, mistakes do happen, and if I do make a mistake I take it seriously but try to do better, moving forward. I am not the first and certainly won’t be the last to make a mistake!

The world keeps changing, as do we. It is important to always put one foot in front of the other, moving forward and learning, no matter what. You don’t need to know it all, but if you’ve learned something new today that you did not know yesterday, I’d call that a win.

Keep learning and coding, my friends!

It’s been over a year…

It’s been well over a year since I’ve written a new post. A lot has happened since I started my first developer job at blubeta in Miami! I have built APIs in Rails 4 and Rails 5 for a few projects that are currently in production, including one that has gone national. TIKD is a service that allows you to upload your moving violation, and they take care of your ticket(s) for you. It’s a great business model, and I have not only been working on the Ruby code for the backend, but have built the v1 Admin Panel in JavaScript, using the React framework. Because I am more “comfortable” (I say that word lightly) with backend, the frontend engineer at the startup is currently working on the v2 of a newly designed panel, leaving me to focus more on the data model and adjusting the back when needed.

This project has also gotten my feet wet in Admin support. Whenever an administrator needs something to be done (aka features we have not built out, yet), I have been given access to the production server and database and have been able to go in and update the data on the spot (by sshing into ubuntu). This can be challenging, as it’s important to make sure the correct record is being updated (and updated correctly!). Just the other week, it was requested that I remove a status from a certain ticket tied to a specific order. Instead of removing the record in the join table, I mistakenly removed the object, itself. This was quickly remedied by creating a new status record, ensuring that the ID number was the same as the deleted one. This lesson taught me more about Active Record associations (which make a lot of sense, now!). People are human and make mistakes. What is important is owning up to them immediately, so things can be rectified!

It has been very interesting, going from the very first hire (and only female engineer) to working in a team of 6 engineers: 2 seniors, 2 non-seniors (this is where I am, at the moment), and 2 part-time devs (still the only female engineer). I have learned a lot about how to think about data, how to model a database (erd) to reflect the data, associating models, and building things out little by little. I have also gotten my feet wet with React. JavaScript is not my strongest language (I am working to change this fact!), so it feels good to see familiar patterns in this framework, learn about state management (or passing props/data as is) and Redux for a uni-directional data flow (all goes back to the number one thing we’re working with, here: data!)

As I move forward in this career, I would like to improve my JavaScript skills, create more side projects (I am currently working on a Rails app for my mom, so she can keep track of the movies she’s seen/wants to see), and keep discovering new problems to solve (let’s face it, the world is full of problems to solve!).

I can’t believe that it’s been over 2 years since I’ve performed music in front of an audience. There was a period when I was performing every single week with either the Milwaukee Symphony or the Lyric Opera (sometimes both!). I do miss the comfort and confidence I felt in that career (music was always “natural” and “easy”), but I’m slowly working to feel this was in this new(ish) career! Confidence grows with experience, and 2 years in, I am feeling slightly better about things.

Keep building!

A lot can and will happen in a year

When I decided to move down to South Florida and fundamentally change my life, I was meant to share the burden of change with a partner who was going to change his life as well. Before moving, we broke up, and I am currently doing the “life change” alone. Looking back, if I knew I would be alone during this process, maybe I would not have taken the giant leap of faith to move here, away from friends and family. It is lonely, and I find myself wondering what would have happened if I stayed up north. That being said, not seeing snow for the first time during winter was fantastic!

After Wyncode, I was under the impression that I was going to land a Junior Development position that paid $45,000-$55,000. After living with poverty-level income for the last few years, this idea is what has driven me to take such a drastic leap of faith. Immediately after Wyncode, I was offered a job with a start-up that paid a salary and had benefits! As a musician, this is almost unheard of, so I accepted the offer. That being said, I had a very bad feeling in my gut, as they were never very transparent about what my duties would be, my title, or the amount of hours they expected from me. I was very clear, in the beginning, that I gave up a lot to be a coder, and once I found out they were going to ultimately keep their off-shore developers, I decided to leave that job. It was an “Operations” position; something similar to what I did back in Chicago, part-time, for 7 years in a law office as a supplemental job to my music career.

If I gave up my first love of music, something that has been a vital part of me since age 8, sold all of my furniture, rented out my condo, shelled out $10K to go to a coding school, only to end up working 50 hour work weeks in a job doing “Operations”, what was the point of doing any of the above?! I took an extreme risk to change my life for the better, not to disturb my work-life balance doing something I did not even enjoy!

About 2 months ago, I expressed my frustration to someone who has been able to help me along in this learning process. Needless to say, I left the Operations gig and am currently working, part-time, for a start-up as their Junior backend developer.

The first week on the job was invigorating. I’m finally a “real programmer”! This is the path that I gave so much up to be on! As I met my teammates, who are all very professional, kind and encouraging, I figured out how to set up my environment. I played around in VIM, downloaded iTerm, and read about nginx server configuration.

From there, we quickly moved on to building APIs using Ruby on Rails. Since I’ve started exploring programming, I have been attracted to the Ruby language, and especially the Rails framework. The learning curve is steep when one is learning to think differently and program, but it’s rewarding to learn new things on a daily basis. Just last week, I spent a lot of time reading and trying to implement RSpec tests into one of the APIs. I can’t say that I suffer from “impostor syndrome”, because I truly believe that anyone can learn anything if they are shown or taught in a way they can understand. If I don’t know something, it is simply because I don’t know it, yet! Basically, I can only know what I know.

Almost 3 months into this job, and only really 6 months of programming experience, I can honestly say I have learned a lot and would very much like to continue this path and really master this field, like I mastered my “other career” as a musician. Maybe, one day, the two will converge.

In the meantime, I need to figure out these errors….

Why I want to be a software engineer

It’s been a while since I’ve written a new post. Wyncode cohort 7 has successfully graduated, and we are currently deep into job search mode. After 9 weeks of intensive 12 + hour days learning how to code, I am absolutely certain I want to become a software developer.

It’s been a whirlwind of constantly learning new concepts, figuring things out, and solving problems. This feeling is very similar to my decade’s worth of experience as a professional musician; the same parts of the brain seem to be stimulated!

This past weekend, a group of us from Wyncode travelled up to Fort Lauderdale to participate in the ITPalooza Mobile App & IoT Hackathon powered by AT&T. We hacked away for 24 hours, with minimal “naps”, and ended up tying for first place at the end of it! That experience, alone, of working together on a team, figuring things out, and creating a tangible app that can be used one day confirmed to me that I can do this, and I really want to continue doing this.

We were even in the Miami Herald !

Coming from a musical background, I get “oh, we should JAM sometime!” or, “can you write me a jingle?” People seem to be fundamentally unaware that, even though it is a creative field, the classical musician’s brain really functions similarly to an engineer’s brain. We analyze the structure of a piece, a lot of repetition is involved (in practicing and perfecting our craft), and we are constantly learning new techniques in order to optimize our experience. It is also important to communicate effectively with an audience. Coding is absolutely the same. We need to effectively communicate with a machine, as well as with other coders who will need to read and understand what we are trying to communicate.

This is just the beginning of my journey, and I hope that luck and experience are on my side as I move forward in this new career. Keep coding!

Resources, resources and more resources!

I have always had a penchant for learning. It’s exciting to think that one can start out as a clean slate, learn various skills, and potentially change the world. This is the case in music, and absolutely rings true with code. Both fields utilize problem solving skills and creativity. In my music career, I thought a lot about what I could do to make a phrase sound a certain way in order to better express its meaning. Communicating a story or emotion to the audience is the point of the language, right? I believe that code is similar. So far, I have noticed that if I would like to express something, I will need to figure out the best, most concise way of expressing it. This is where problem solving skills come into the picture!

When challenges arise in a coding situation, the first step is to break down the problem into small pieces, just like learning a piece of music. In music, I initially try to look at the overall picture. Then, focus on the difficult parts, isolate the difficulties until they are simple, and play the piece. Coding is very similar: You don’t need to “solve” the whole code at first, just that first step. Then, move on to the next. Keep going until you’re done. I am assuming that once I am actively looking for jobs, interviewers will look for potential employers who have good problem solving techniques and the ability to break things down.

You may be wondering how one goes about learning these skills, especially if you do not have a degree in Computer Science (or music). In this post, I wanted to write a bit about all of the resources I have come across thus far in this journey, and a little about what each one sets to accomplish.

Back in 2013, I remember watching Stephen Colbert interview Zach Sims, the founder of a website called Codecademy. He talked about learning how to code, how and why everyone should learn (technology is the wave of the present and future!) and mentioned that the site was a free learning resource. In the back of my mind, I remembered this interview, and when I decided to seriously dive into learning how to code, I started with the HTML course on Codecademy. The instruction is explained very nicely, and you are constantly notified of your progress, and cheered on with emails about each level you have completed, which is encouraging. I have since completed the HTML, CSS and JavaScript courses, and am currently going through the Ruby course. I have made it a goal to complete all 4 of these courses before starting the Wyncode cohort this September.

The second thing I was encouraged to do was join LinkedIn and Twitter. For seven years I was on Facebook, but nothing really productive came out of that experience, and I have since been off of it for a little over a year.  Twitter, however, is an excellent source of information.  I currently “follow” people in the tech industry, tech resources, and receive tweets on the various events in Miami, as I look forward to our upcoming move this September. On LinkedIn, I basically have my music resume, but was also able to add “budding Web Developer” to my tag. Within weeks, headhunters reached out to me because of it! At this point, I am not job-ready, but that was very encouraging.

There is an app that I currently use on my Nexus 7 called SoloLearn. As a supplement to the Codecademy course, I went through and completed the HTML course on the SoloLearn app. Recently, SoloLearn has connected with LinkedIn and now posts a “Certification of Completion” on your profile after you complete a course through the app. I’m partially finished with the CSS, and think it would be great to have another certification on my profile, but prefer to put more of my focus on learning Ruby, at the moment.

Meetups are another fantastic resource when learning to code! They allow you to learn in a group setting, make new friends, and a lot of the ones in Chicago are absolutely free! The very first tech meetup I attended was back in January of this year. This full-day event was on Chef: “Automagic your machine with Chef”. This was part of the Womens DIY Series. I knew I wasn’t going to understand everything, but I figured I would learn something! This was the first time I truly learned how to use a text editor and the terminal on my Mac (and not be afraid of it). The day consisted of going through a tutorial with the help from TAs and guides, listening to lightning talks about various topics, and eating delicious food (provided by the organization!). This was also the first time I got a Github account and pushed part of the tutorial on to my profile. Everyone was very helpful, encouraging and kind.

Another meetup that sticks out in my mind is: Women Who Code Chicago “Intro to Programming”. Another full-day event, we learned basics to back-end programming, listened to lightning talks, and were given a few tasks to figure out on our own. Guides were around to help us out if we needed anything. I have also attended the full-day Cassandra Chicago “event” (free food and t-shirt provided!), more than a few Anyone Can Learn To Code Chicago meetups, and look forward to an upcoming Railsbridge Chicago class this Tuesday, as well as a Django Girls event in June, as part of the Girl Develop It series. An application process was involved in this last event. Applying and getting accepted is such a foreign concept to me after facing rejection after rejection in music. Horray for little victories!

At one of the meetups, I met Martin (yes, this is his real name!). Not unlike myself, Martin is moving to a warmer climate (he just moved to Maui) and wants to pursue a career in programming. We have been trying to collaborate on a project together: building and “fixing” a website for his friend’s company. Before Martin moved, he and I met in cafes and discussed what needed to be done to the site (HTML, CSS skills), and now we “meet” on Skype. So far, I have learned a bit about fonts and design principles, and how to collaborate on a project using Github (still learning how to do this). I hope we can produce a good product for his friend. What a learning process!

More free resources for learning on your own are Khan Academy and Code School. Even my mom is on Khan Academy, brushing up on her math skills! Both websites utilize videos in the teaching process. Code School has classes on learning Git, and even a “Rails for Zombie” course.

If you are into podcasts, CodeNewbie is an encouraging, information-packed one to listen to. Their website (and podcast) is geared towards “newbies” in the industry. It is exciting to listen to how others have successfully transitioned out of their current careers (bartending, professional ice-skating, etc) into tech, and the path they took to get there.

Skillcrush is one of the first sites I randomly discovered, early on in this journey. This resource focuses on women who would like to learn tech skills on their own. Because I am enrolled in a bootcamp, I am not going to purchase any of their “blueprints”, but I do enjoy reading the guides they send, and attending the various Webinars they provide.

Learning is a process. I saw a great quote, the other day: “Programming isn’t a “passion” or a “talent” but a collection of acquired skills.” Keep learning!

Until the next post…..Ciao!

baby’s first blog post: why I decided to give up a career in music and delve into web development!

Greetings! Welcome to my very first blog post.  I would like to explain why I decided to:

1) completely change my life

2) blog about it

Since I’ve graduated with a 4.0 GPA and a Masters in Orchestral Studies, I have worked as a freelance musician. I’ve performed in Hawaii and China, was a co-founder of a Brazilian music group, travelled through snow and ice storms in order to play solos and orchestral music in different states, performed with world-class orchestras and opera orchestras, played flute in a national Windex ad, and have taught flute and piano to some of the greatest kids (and some adults) one could ever know. Feel free to peruse my website to see what I have done with my life the past decade or so: www.madelenecampos.com

However, let me just state that I have never, EVER wanted to freelance in music. In other careers, it is possible to freelance and actually build a life. It is very difficult to sustain a life in the music field if you are a freelancer. Therefore, I have always strived to have a job. Security, benefits, being able to plan a life – job. In the music field, the odds are approximately 200 to 1 for winning a secure job with an orchestra. Even then, a lot of it is who you know, and is entirely subjective.  Because my freelance career was doing well, I went with it whilst trying to land the “job in the sky”. This was fine, because I was going to win the fancy job with an orchestra, right?

I can not recall any of my instructors or mentors ever discouraging me through this process. Several musicians in top jobs told me I “had it” and to “keep going” and “never give up”. It seemed a logical progression, as I witnessed great people (and a lot of mediocre ones) advance and succeed in the music world, that I would be next. It was just a matter of time, right?

Well, a few years ago, the freelance climate changed dramatically. As I found myself getting older, and actually BETTER on my instruments, due to developing and honing my skills over the years, I actually had less and less work. People with secure, full-time jobs were starting to take freelance work as well, “just for fun” or for “musical variety”, not thinking that other people’s livelihood depended on that work. I tried the whole networking thing, only to hear “of course there’s work for you! You sound great! I can’t believe you’re not busier!”, but not getting hired in the end. Based on my resume, one person actually sent an email to me stating that I was “too busy” to work with their organization, but they would “keep my information on file”. It is incorrect assumptions like these, and living on $12,000 a year that pushed me into moving my life in another direction.

In a fit of desperation, sheer frustration, and growing anger, I decided to google “top 100 jobs”, last October. Knowing I did not want to be a doctor, veterinarian, or pharmacist, I noticed “web developer” in the list. That looked interesting! The more I read about it, the more interested I became. I recalled watching Zach Sims, founder of www.codecademy.com on an episode of The Colbert Report, about a year ago. I decided to look into learning the various skills needed to become a web developer to see if I was truly interested in this field. Codecademy seemed a great place to start!

On top of that, my boyfriend at the time (he’s still my boyfriend at this time, too) mentioned that “One of our friends is a web developer!”. I immediately reached out to our friend, Randy, bombarded him with questions, and he has been acting as a mentor to me through this process since that time.

As of right now, I have completed the HTML, CSS, and JavaScript courses on Codecademy, gone to numerous Meetups, here in Chicago, on Ruby, Ruby on Rails, Railsgirls events, Cassandra, Chef, and JavaScript. I have done tutorials and pushed them to a Github account (for practice). The people I have met have been extremely open with their knowledge and so kind! It is refreshing to be around this environment of open-source knowledge and shared learning!

A few months back, Randy suggested that if I really wanted to be job ready, I should look into enrolling in a web development boot camp. This brings us to the present. Because I am completely changing careers, and have a general disdain for winter weather, Randy suggested that my boyfriend and I move to where he and his fiancee live: Miami!

Starting in September, we will be relocating to Miami, and I will be partaking in a cohort at Wyncode Academy (wyncode.co)

That’s all for now. I’ll keep you updated on my progress, the next webinar or Meetup I go to, and hopefully will inspire you to make a career change, especially if you are feeling stagnant, poor, or generally unhappy in your current career/lifestyle.  In the meantime, I need to get back to learning Ruby!

Ciao!