My old friend, Samson, got me into using zsh and oh-my-zsh. And then I discovered that Wes Bos (ps, Wes is also the creator of the cobalt2 theme!) had made this cool and very useful video series – Command Line Power User. If you are using zsh, I highly recommended. If you are not using zsh, why not?
I’ve had a few chats recently with people you are studying or have just finished studying at Enspiral Dev Academy about networking. The common question is how do I start networking if I don’t know anybody. So, here are a few ideas on how to get started.
Meetup is the world’s largest network of local groups. Meetup makes it easy for anyone to organize a local group or find one of the thousands already meeting up face-to-face. More than 9,000 groups get together in local communities each day, each one with the goal of improving themselves or their communities.
I think I was introduced to Meet Up when I learnt about EDA. They have there own where every week there is a NodeSchool Wellington meet up and Ember.js School. They also semi-regularly have Tech Talks – like this one: Starting out with established codebases.
There are heaps of meet ups, and not just tech ones. Here are the ones I belong to, you don’t have to be really active in them. I’m not but if there is something that comes up that I am interested in I can jump onto it.
Back to way going to meet ups are good for networking. You will meet people in the industry, you can connect with people, you can learn what is going on and learn something new.
I have a goal of talking to at least two people I don’t know at meet ups. Otherwise I have a tendency to stand around and hide in a corner. It can also be good to see if anyone you know is going and see if you can go together, strength in numbers. Don’t let this stop you from introducing yourself to other people though. Perhaps work together to talk to people you both don’t know.
I find it useful to have thought of few questions to ask when I introduce myself. “Hi, I’m Libby, I work at Flick, where do you work?” “Is this your first meet up?” “What do you do?”
Once you have the ball rolling, try to figure out if you have any common interests and make a connection. This doesn’t just have to be around coding, maybe they are into surfing and you can share the best places to go for a surf. Try and connect.
I have Twitter useful while I was teaching and now as a developer it is great to keep up to date with what people are up to. The trick with Twitter is that you have to be active to really get the benefit from it – i.e. it is a “social” network, so you have to be social! I joined Twitter in 2011 but wasn’t really active on it until 2012. I didn’t get it until I started being more active on it.
Around the time I started being social on Twitter I started this blog for my Registered Teacher Criteria (something teachers have to do). I linked this to my Twitter account, so whenever I blogged, it would be tweeted as well. This is one way of being active.
Coming back to networking, start following people that interest you, tech companies, companies you want to work for, people you admire in the industry, sites that offer training. Start retweeting tweets you see that you find interesting. Every now and then add your own comment to the things you retweet.
If you aren’t sure who to follow, start looking at those you do and see who they follow. Have a look at some hashtags – #rails, #rubyonrails, #webdesign
If you are keen on getting started with Twitter but your not to sure how to, have a look at this 14 Day Twitter Challenge. It is for PE teachers but follow along and just change out PE things for web dev things.
Day 3 – find and follow, try this list of developers. Day 4 hashtag – #webdev. Day 13 – Twitter Chat – to come.
Friends and Family
Network with your friends and family. Start sharing what you are up to, what you want to do, what tech you are passionate about, what you want to make. Explain to them what Dev Academy is all about, or however you have been learning. Sooner or later someone will go ‘Oh, I know so and so who works at one of the biggest web companies in Wellington’. Funnily enough, through my mother chatting with someone in her ladies choir I could have made a connection with one of the head honchos at Springload. You never know who is connected to who, so talk it up with whoever will listen.
What ways do you network? Who should new developers follow on Twitter? What meet ups do you recommend for new developers? Do you have some advice for new developers who are just starting out with networking?
I graduated from Enspiral Dev Academy at the beginning of July. The week following graduation was Careers Week. This covered interview practice, offline networking – going to meet ups, CVs and cover letters, your digital footprint, getting everything up to date. It also mentioned to keep coding.
I think the best thing that I did was to work on my own project from when I graduated to when I got a job. I was doing some casual work once I graduated but I made sure that I took time to work on my project (this was making a Ruby version of my cohorts final project – PikaDish).
This was good in a few ways. Firstly, it got my head back into coding. I probably didn’t do any coding for about two weeks from graduation. I actually found the first few days once I got back into coding quite difficult. It was almost like I had to look everything up again. My recommendation would be to maybe have a few days off from coding once you graduate but don’t leave it any longer then that.
Secondly, I really enjoyed being able to work on a project by myself and do it how I wanted to. This helped with my confidence in my ability to code.
Thirdly, because there was no deadline or other people to worry about I was able to take my time. This meant I could sit back and try to remember how to do something and take the time to google ideas I had about how to do something.
Fourth, this meant that I was coding AND committing regularly to Github. I think this is VERY important to keep doing once you have graduated (if you are going to be looking for a job straight away). Employers will look at your Github profile and it will be a big plus for you if they see that you have continued to code.
I would also suggest putting up repos from bootcamp onto your public facing Github. We all wrote a lot of code during bootcamp, why not show it off. Some people might say don’t put poor code up but I think if you can show where you were and how you have progressed, that’s got to be a good thing. And you could always go back and improve it.
To download all of your work from EDA have a look at what Nick Johnstone made, a RubyGem – eda-code-downloader – “eda-code-downloader is a command line tool that clones down all of your Dev Academy code for you. It handles pairing and solo branch names, and can also be used to download all the challenges for a cohort.”
I made a Trello board for my job hunting.
Casual jobs, formal and informal, had I sent my CV, applied, interview questions / study to do, questions I wanted to ask.
I found this really useful. I looked for companies that I was keen to work at as well as advertised positions. I also talked to quite a lot of people that I knew in the industry about jobs, what jobs to apply for, should I apply just for Ruby and Rails jobs, what about waiting for the perfect job, I asked previous graduates what they had looked for in a job and if they had any advice. I added all of this to my Trello board and used it to help me decide on whether I would apply for certain jobs or email companies and it also helped me decide on what job I decided to accept.
LEARN, LEARN, LEARN
Keep expanding and exploring your learning. You can achieve this in a number of ways, it doesn’t have to be learning a new language as soon as you have graduated. I started looking at upgrading my text editor. I use Sublime so started looking into upgrading to Sublime Text 3.
This led me to looking at adding linters and having a closer look at the functionality in Sublime Text that I wasn’t using. From doing this I have learnt a lot. I have had to take RVM off my Mac and just use RBENV. I have had to do a lot of troubleshooting. This has all helped with building my confidence in knowing that I can work things out and solve problems and that I am getting good at googling!
From talking with a few people who are in jobs where they have some involvement with hiring graduates or new developers, the things that I keep hearing are:
keep coding, keep pushing to Github
show your passion, be passionate about something, have a spark in your eyes
have ideas about things you want to do, want to learn
be learning something – so you can talk about it!
ask questions in an interview / technical interview – if you ask a question or say you aren’t sure about something but you would approach in this way does not mean you will not get the job, they would rather you talked through a problem then struggle on silently, they are not just looking for technical skills but how will you can communicate and connect with other people
So, that is my two cents worth. I hope someone founds it useful. If you are a graduate, what is your advice for those who have just graduated?
About a year ago I dropped a bombshell on the senior management at school. I had decided I wanted to take a year out of teaching to learn how to program, develop websites and overall have a better understanding of what it is all about.
Reasons why I wanted to do this:
I couldn’t see myself teaching PE for much longer (injuries, loss of interest)
I wanted to understand programming, HTML/CSS, web development so I could move over into Digital Technology
an increased interest and passion for creating websites/programmes
and I got really tired last year with being in a school – needed to get refreshed.
During 2014 I had found out about Enspiral Dev Academy and decided this was where I was going to go to learn the craft of web development. Earlier in the year I had halfheartedly considered the idea of going back to university and doing a year or few but decided against even a year due to it being a year and not being able to work for that time.
What appealed about EDA was that it was short (19 weeks in total), the first nine weeks was done remotely (so I could still work), the bootcamp part – learning with others, learning in an environment that was similar to what it would be like in industry, instructors who have worked in industry, the help that was offered with getting a job. All of these things aren’t available in a traditional tertiary training institution.
It has been quite a journey at EDA and I have documented it with previous blog posts – the last one being “Phase 3 and Final Project – Dev Academy“. I have had an amazing time this year and have learnt a huge amount.
There a lot of take aways form this year:
the experiences I have had – individually and with others
the people I have meet, learnt with, grown with, cried and laughed with
the rollercoaster ride of emotions
and that you are never too old or too stuck to change.
The best take away for this year is the people I have meet and the connections I have made. Life is about people and I have meet some amazing ones this year. Many who are embarking on or are on the same journey as me. It is exciting to be part of an ever growing community that is Enspiral Dev Academy. It will be intriguing to see where we all are in the years to come and how much of a positive impact we have made on the tech industry as well as within other areas of society, particularly education.
I have to give a HUGE shout out to my lovely wife. This year would not have happened if it wasn’t for her all encompassing love and support.
During my journey I started to think about whether I wanted to head back to school in 2015. As it turns out I don’t. This was for a few reasons but overall it came down to wanting to focus on my own and my families well being. So I resigned awhile ago and started to seriously look for a junior developer job. This was stressful and required thoughtful consideration (I am planning a future blog post about what I think is useful to do when looking for a job in the tech industry).
I have now kind of come full circle, in that I have accepted a job as a junior developer at Flick Electric Co.
I am excited and scared at the same time. I am looking forward to a lot more learning and working closely with others to help develop a product and create a positive culture that will have a positive impact.
I am also hoping to keep my hand in the education sphere by helping out Gather Workshops with some Ruby stuff, getting involved with RailsGirls, maybe Code Club Aotearoa and helping out alumni and current students at EDA.
The second to last Thursday was the first day of the final project and pitch day. All of us in the cohort needed to pitch some apps ideas. We had about ten but settled on a meal planner idea, with the basic idea being that you can choose meals for the week and then see a shopping list with all of the ingredients for the week.
We did some awesome overview planning –
-which was good and gave us a structure to follow for the next few days. However, that is kind of where the planning stopped for a bit and this meant that once we had reached minimum viable product (MVP) we had some issues. The main issue being that the database schema needed to be changed a few times and this had flow on effects with how information was being displayed and interacted with by the front end.
We reached MVP by Sunday evening after some hard work over the weekend.
Once we achieved MVP we focused on our stretch goals. I wanted to work on making it a responsive design and looking better than MVP. We hadn’t planned well for the front end, so we had to kind of work backwards by using a Bootstrap template off http://startbootstrap.com/. It now looks a lot better!
We used Trello to put in place the use of a kanban board as part of our agile methodologies. This was useful with some people working at home in the evenings. However, we got a bit carried away with the number of ‘tickets’ on it and the flow of these – the board got a bit crowded and hence wasn’t as useful as it could have been.
After some guidance by the teachers at EDA we became better at using the board. Although it seemed to me that those that hadn’t used Trello before weren’t that keen to use it. I, on the other hand, had used it at school with students and could really see the benefits, plus I kind of live on the computer.
A quick think about the lessons learnt…
it can be difficult working in a team
it is even harder when abilities are quite different
however, if worked right, everyone is able to contribute the best they can
it is exciting working with others and achieving something you didn’t think you could
hard work pays off
it is worthwhile to take the time to work with others and figure out how best to work with others
it can be very easy to slip into a ‘negative’ mindset about people when others are thinking the same thing
it can be difficult in a group situation to always be thinking about being kind – or actioning being kind
I learnt a lot about myself working intensely with others
sometimes I swear too much and get too loud!
sometimes I just need to let it out by swearing and being loud!
it can be hard to step away from coding when you are really focused on something and want to get it done.
There are many more things I have learn, that is just a quick list off the top of my head.
So, after we finished coding our site, we then had a day to prepare for the final project presentation on the last Friday of bootcamp.
You would think that since I have been teaching for a few years and kind of have been in front of people for most of my working life that I would be sweet with speaking and presenting. But I still got nervous and I think it was because I was invested in what we had made and really proud of it.
The day ended with graduation of bootcamp and a party. Got this cool little gift from EDA.
Phase 3 is the most exciting phase here at EDA. In this phase we no longer view you as students or developers-in-training, rather we look at you to be valuable, albeit junior, collaborators in the craft of software development.
I would agree, Week 1 has me very excited. It is lifting to be seen as “collaborators in the craft of software development”. And it really is about crafting software, websites, apps. I haven’t yet made anything really cool and exciting, however, I am getting excited by what I am doing, how I am doing it and the potential for me to create and craft in the near future. This is the first reason it has been a great week.
Secondly, the way the course has been structured works well for me. In this first week of Phase 3 the Rubyists learn Ruby on Rails (the C Sharpies do a group project together as they had a big learning curve in Phase 2 and are kind of waiting for the Rubyists to catch up). There is less guidance and structure to this week of Rails then the previous first two phases. However, there still is a good structure there and this was useful for me as I like have a good solid structure when I am learning new things. The first two days of the week I re-created my shopping cart with Rails. For one of the Phase 2 personal projects we made a shopping cart using Ruby and Sinatra. This was referred to as “Diet Rails” but we learnt all about routing. Then with Rails, what happens is that it does a lot more for you. Which is cool and some may think what was the point of doing what we did with Sinatra but it made Rails seem not as scary to me. I was able to understand a lot of what Rails was doing and creating for me having had spent a lot if time creating all those same things when using Sinatra.
I worked on the shopping cart for a couple of days and covered the ins and outs of it with lectures plus learnt about Devise and Omniauth. Day 3 was set down as Test Driven Development and this is an area that I hadn’t focused on during Phase 1 or 2 and knew I had to knuckle down and get my head around it.
A slight break in this track of writing to mention another reason that I have loved this past week. I have ended up being the only Rubyist in Phase 3! So, our cohort starting with 5 C Sharpies and 4 Rubyists. Part way through Phase 2, one rubyist decided she wasn’t going to do Phase 3 as it wasn’t going to be useful for where she was at and where she wanted to go. Then the two others both decided, for various reasons, to roll back a cohort and repeat Phase 2. I felt at the end of Phase 2 that I had strong forward momentum and wanted to jump into Phase 3 whole heartedly. So, I have been working by myself mostly over the past week and I have loved it! It has meant that I have been able to focus on my learning and use tools and methods that work for me.
Wireframes, routes, ideas about apps made in Rails.
This has also meant that I have had many one on ones with the teachers at EDA, which leads me back on track to TDD. On the Wednesday the first ‘lecture’ Joshua Vial was set down to take. It is a bit odd doing one on one lectures, so Josh come over to where I was working and we started talking about TDD. He came up with a great idea to create a blog app in Rails with the proviso that I didn’t open the server (so didn’t look at the website I was making) until I had written the tests and the code for all of the functionality I wanted. We also did “ping pong” pair coding – this is where one person writes a test, you swap, second person writes the code to pass the test and then writes another test, you swap, etc etc.
I have learnt to enjoy test driven development. I am even thinking it would be fun to go back and revisit a lot of my projects and write tests for them. It was good to finally get my head around testing and I got to do some Capybara testing as well.
On Thursday and Friday I learnt about Mocks Stubs and Doubles and using AJAX and JSON with Rails.
And to cut a post short that is getting long, last few important things from this week, at the start Samson Ootoovak gave a great intro to the week that set it up well for me. Within this was the clear intent that there was freedom to deviant from the structure and that this was strongly encouraged if you didn’t feel the content was useful or if you found any of it boring. It was cool to have this acknowledged.
Being the only Rubyist this week has given me the time and space to learn and to solve problems by myself, which has been a valuable experience. It has also meant that I have had many one on ones where I have asked questions and learn heaps, which has been fantastic.
Also on Thursday evening I attended a small meet up at EDA, for anyone who is interested in learning Ember JS. I think it will be extremely useful to know at least one JS framework before I finish at EDA, so decided that this would be a great opportunity. Ember has been created by a lot of people who come from a Ruby and Rails background so the way it is structured in its implementation is similar.
One of the most important learnings from this week is that I am no longer scared of learning new languages! Now that is really cool! I’m actually excited about learning more so I can do more cool things!
Wow, so another phase completed and the final phase to go. I have enjoyed Phase 2 a lot. It has been great getting out of the console and onto the web. I like making sites look good and felt pretty confident with HTML and CSS before Phase 2. It has been heaps of fun to dive into the web and the learning has been exciting.
A quick overview of what Phase 2 has covered:
Week 4: Testing, Simple Web Applications, and Github: cover Rspec, Sinatra, ActiveRecord, HTML, CSS, and Heroku.
Week 6: Complex Web Applications: Week 6 ties it all together, discover how to use background jobs, OAuth, and other APIs.
It has also included three personal projects – a server side app (shopping cart), a client side app (customer management relationship app) and an api app challenge (this was wide open, I had a play with the Twitter api).
The personal projects were a great way to review and embed all the learning that happened during Phase 2. I particularly found this for the first project, the shopping cart, as we had 6 days for it, and I was able to spend more time on implementing the core the functionality. The client side and api apps were given to us at the same time and we had 6 days to do both.
For the sever side project, I spent a lot of time planning out how I was going to create the database, web pages and routes:
By taking the time with the planning meant that I only had to make my database once. This meant that I wasn’t rushed with any of the other components of the site.
We are a team of three and had a focus on our learning rather then worrying about making a really cool product. This meant we weren’t rushed in our planning and took the time to step back and look at the bigger picture. Hence, our planning was thorough and thus meant our development was efficient and effective.
Another factor that helped was having a small minimum viable product. We decided on a 2 by 2 grid, which meant only 2 faces, however, not knowing how difficult this was going to be it was great having a small MVP. We achieved this quite early on, which meant we could dive into our stretch goals.
Other learnings / experiences from Phase 2 have been embracing unexpected learning opportunities. In our cohort project in week 6, I was suppose to be in the front end / JS team but due to illnesses was in the back end with Ruby. It took me a little while to be happy with this, however, learnt lots.
I think I am tending towards the front end as I like creating stuff on the web and interacting with the web.
I had an ‘aha!’ moment during week 6 where I was reading this job description:
and realised that I could understand everything that it is talking about and that I could tick off most of them to some sort of degree. That was exciting!
Here comes Phase 3, three weeks – learning Rails, more JS, JQuery etc and then the final cohort project! Bring it on!