Rails Girls Summer of Code logo

Rails Girls Summer of Code 2018

Rails Girls Summer of Code is a great way to practice your code skills after attending to one of the Rails Girls workshops. You can work on an Open Source project during the Summer, having a whole team to support you: teammate, a mentor, coaches and a supervisor to support you during this journey. I still get excited when I remember that this program is totally funded by the community (and also some cool sponsors!).

I am so happy to say that my team, Brazilian Housewives coding, was accepted this year! They recently posted my team Introduction blog post from the official blog in Rails Girls Summer of Code. Check it out the other team’s posts there too, they are all amazing!

About us

Hello! We are Stefanni and Camila, two junior software developers from Brazil, based in Vancouver, Canada. We didn’t know each other before the RGSoC and we are more than happy to introduce our team!

Stefanni

I am a millennial that likes to cook, coding, cats, playing sports and eating chocolate. I moved to Vancouver in January because my husband received a job offer to work here and we brought our two cats with us.

My history with Rails Girls began in 2015. Actually, Rails Girls is the reason I decided to start Computer Science college in 2015 ( I only did 1 year and a half, now I am studying by myself). I went as a student in the Rails Girls Sao Paulo 2015 workshop and since then I wanted to join the RGSoC, but I never applied. I was also a coach on the 2017th edition and it was an amazing experience.

The other coach of my group introduced me to the CTO of a Brazilian fintech where later I did a brief software internship before moving to Vancouver. So imagine how happy I was when Ana and Vaishali surprised us announcing that we were selected, Rails Girls has been playing an important role in my tech career!

Camila

Hello everybody, my name is Camila! I’m a Brazilian living in Vancouver with my husband. After finishing our master’s degree in Computer Science last year we came to Canada with our two cats – the flight was a great adventure!

During graduation I worked with Recommender Systems, characterizing the consumption over time in recommendation domains, and in social network analysis. In my master, I was interested in understanding how sociological aspects are reflected in current technologies, such as the existence of racial bias/stereotypes in search engines, and what is the role of the algorithms on the propagation of these bias/stereotypes. I’ve been working with academic research since my first year as an undergrad student. And my plan was to finish my master’s degree and then apply for a Ph.D. But for now, I feel the need to apply my knowledge to something that is really going to be used by several people and not only in the academic environment.

I learned to code in my early years of graduation and I have a good experience with algorithms. I have good knowledge of Python, C, R… But I have almost no experience in software development, software engineering, testing, etc. So I think the Rail Girls program will be a great opportunity to be part of the Open Source community and learn a lot!

How did we meet?

Because we are both relatively new to Vancouver, it was difficult to find a teammate here. So we used the RGSoC google groups to search for teammates and there was where we met each other. We went to a coffee shop and discussed our application and we soon got along, especially because we both have cats =).

Thanks, RGSoC organizers for providing these mediums for us to find a teammate 🙂

How is work going?

This week has been great! We are reading and collecting information from the Public Lab codebase and the API docs/tests. Also, we focused on learning more about Git, RESTful API’s, and how to document code changes.

We also want to thank the Predictable Revenue for letting us use their space to work. Thiago, one of our coaches, works there and we asked if we could work there. The office is great and it’s located at the historical site of Vancouver, a central location in the city.

Camila, Julio, Stefanni and Thiago on our first day! picture taken by Stefanni Brasil

Camila, Julio, Stefanni, and Thiago on our first day! the picture was taken by Stefanni Brasil

Meet our Amazing Team

Coaches:

Thiago Araujo and Julio Albinati. Thanks for being our coaches, we couldn’t be part of this amazing program without your help.

Mentor:

One of the reasons we applied to work at Public Lab is because it’s a very inclusive and supportive community. Jeff Warren is always helping us and we are happy to be part of it.

Supervisor:

Mayar is our RGSoC’s Buddy and we want to thank you for all your support and advice for us to have a great summer of code.

Thanks, everyone for helping us and for being part of our team, you are amazing! 🙂

About our Summer Project

We are working as a part-time team on the Public Lab app, more specific on the API feature. We have a Planning Issue here with the Timeline and a Github Project page if you want to check out and/or give some help and tips 🙂 We don’t have much experience working with API’s so we are really excited to learn everything that we can this summer.

So, why Brazilian housewives coding?

We are junior developers and have only been living in Vancouver for a few months. We were both beginning our career in Brazil when our husbands got a job offer to move to Vancouver so we were having a hard time finding opportunities for juniors here. We thought it would be a good name to play with our status here! 😛

What do we expect for the RGSoC 2018?

  • Understand more about modeling an API
  • Become more familiar with SQL queries
  • Be experts on Ruby on Rails
  • Learn more about JavaScript and Tests
  • Improve our documentation skills
  • Be just the beginning of this amazing Open Source adventure
  • Have a great Summer!

Peak: Secrets from the New Science of Expertise

I discovered a few months ago this cute app called Libby that allows you to loan e-books and audiobooks using your local library card without having to log in, download the e-book, send to your device… Isn’t that amazing?! <3

When I was reading Deep Work, I added a few books in my to-read Bookshelf and one of them was Peak: Secrets from the New Science of Expertise, from by K. Anders Ericsson and Robert Pool. It is, so far, one of the best books involving psychological research and concepts that I have read (the other one is ‘Thinking, Fast and Slow’, by Daniel Kahneman).

It’s not my intention here to resume the book or to discuss every concept of it (there are so many!!). But to give you an idea, the book discusses how to be an expert in a given field through a deliberate practice, building mental representations, having the support of your significant ones and other variables.

Now I want to share with you my best part of the book. It’s the chapter 8, ‘But What About Natural Talent?’, specifically, the section called ‘The Dark Side of Believing In Inner talent’. It demystifies the belief of someone being gifted or being talented by nature and because of that, they are good at what they do.

When people assume that talent plays a major, even determining, role in how accomplished a person can become, that assumptions points one toward certains decisions and actions. If you assume that people who are not innately gifted are never going to be good at something, then the children who don’t excel at something right away are encouraged to try something else. The clumsy ones are pushed away from sports, the ones who can’t carry a tune right away are told they should try something other than music, and the ones who don’t immediately get comfortable with numbers are told they are not good at math. And, no surprises, the predictions come true [… ]. Te prophecy becomes self-fufilling.

Because we believe in that, we don’t even try. And that can prevent people from building great skills that would benefit us all as a society. That is so damaging! I was one of these children who was discouraged to study Engineering… That’s too bad that it happened, but now I understand that this is a huge social problem and I wasn’t the only one. And I am changing that now. If you identify yourself with that, I hope you are doing that too 🙂

In addition to this discussion, I think that this belief is more prejudicial in the STEM fields. I have heard so many times people saying: ‘there are some people who learn how to code really fast, they must be naturally good at it’ or ‘I don’t have a logical brain, therefore I can’t learn how to code’. Now I try to show them the learning from this book and hope that they will stop repeating that and will at least try to pursue their goals.

There is one more quote that I want to share to finish this post with a positive quote:

In the long run it is the ones who practice more who prevail, not the ones who had some initial advantage in intelligence or some other talent.

If you liked these quotes, then besides reading the entire book, you will also enjoy this free amazing and fantastic resources by Dr. Stephen Chew to apply to your practices. You are very welcome!

Hope that you get interested in reading it and if you do, share here your thoughts of it. Or recommend me another book. Cheers!

Github guide for Open Source Contributions

I’ve always wanted to contribute to Open Source projects and I am proud to say that recently I achieved that by doing my first code contributions to some cool projects! There are lots of resources online about contributing to Open Source Projects, especially from Github, but it doesn’t hurt writing another one, right? And writing this Guide will help me because now I don’t have to search the commands every time 🙂

For me, the hardest part was finding a project where I felt welcomed as a beginner and comfortable with the technology used. I was looking at the Rails Girls Summer of Code projects and after some days, I started doing contributions to Public Lab and If me organizations.

If I am in any position of giving an advice, I’d say to look out for projects that you feel comfortable and that makes sense to you and to your learning path. It probably isn’t a good idea to start contributing to the Linux kernel, if you are learning how to program, for example.

You can take a look at the open Issues and choose one that you want to work. If you think you can work on an Issue, for example, but need to clarify some things, go ahead and ask the team! 🙂

Another thing that is helpful in this discovery adventure is to read the documentation. Providing a careful documentation usually says a lot about the team communication and organization.

I like to follow these two guides from Lucas Mazza and Thoughtbot to help me with Git in my contributions. I recommend you to read these two before going further.

Setting our application

Now that we have selected the project and selected an Issue to work on, we must go to their repository and click on the ‘Fork’ button:

This will create a new repository in our Github Account with the current state of the application. You can see it by clicking on your account’s repositories. That’s the repository where we’ll add our changes, instead of playing with the original. This is good because it guarantees that we’ll never affect the original repository, so we won’t be afraid of breaking something and focus on our work 🙂

Now, on our local machine, we clone our forked project (remember to modify the personal info with yours):

git clone git@github.com:stefannibrasil/plots2.git

The next step is to make sure everything is running okay, following the project Installation guide. After that, we can go ahead and create a new branch in our forked repository:

git checkout -b 'my-new-branch'

It’s up to you if you want to create a new branch or work on your local master. I prefer always having a branch for each new feature.

Now we have everything ready for our actual work! Remember to write good commit messages and provide good context for the reviewers while doing them. This post helped me a lot with that 🙂

Submitting our changes

When we are done with our changes, the next step is to open a Pull Request to say that we want to merge our changes into the original code. Normally, visiting the Github project page after pushing changes from a local branch will put a notice with the branch name.

I find it easier to open the Pull Request just clicking on ‘Compare & Pull Request’:

But if that doesn’t happen, you can do that by clicking on ‘New pull request’ and search for your branch there.

Note: If you aren’t done yet but you want to know if you are on the right path, you can always open a new PR to get some feedback. Just add a ‘[WIP] – Add new feature’ to its name and ask for a review.

Keeping our forked repository updated

Because other people are making modifications to the code at the same time, our forked repository needs to get these changes frequently, so we will always have the updated code to work on.

We can do that by adding the project repository as one of our remote repositories. We can copy the link provided in the original repository ‘clone or download’ button and run the following command:

git remote add upstream git@github.com:publiclab/plots2.git

Now if we run

git remote -v

we should have two remote repositories listed, ours and the project’s:

origin git@github.com:stefannibrasil/plots2.git (fetch)
origin git@github.com:stefannibrasil/plots2.git (push)
upstream https://github.com/publiclab/plots2.git (fetch)
upstream https://github.com/publiclab/plots2.git (push)

Now run these on master:

git fetch upstream # to retrieve new work done by ther people
git rebase upstream/master # to rebase upstream into your master
git push origin master

If that ran smoothly, you must see that your forked repository is even with the original:

If you’ve created a branch as I did, run the following command to also rebase your branch with the updated master:

git checkout my-new-branch
git rebase master/my-new-branch

Now we have our repository updated and that will decrease the number of conflicts in the future. If conflicts happen, it’s not the end of the world. Git usually provides helpful messages about the errors to guide you while solving them (and Google, always).

Some notes

After doing your first Open source contribution you’ll likely find out that the code that you change is just half of the work. You need first to communicate with the team, see if you understand the problem and ask for help, for example.

But don’t worry if you don’t feel ready to do any of this. Don’t let that hold you back. If the project you choose is beginner-friendly, the team will help you with anything that you need. Besides, you’ll learn a lot from this experience, trust me.

Another note that I want to share is this video from Eileen. She talked a little about her Open Source experience developing a feature for Rails 5.1:

And that’s it for today. I hope you find this Guide useful. If you have anything to suggest or add, please, add a comment below 🙂 See you next!

 

Some random thoughts

Hello, there!

It’s been a while since I don’t write anything here. For those who don’t know, my husband and I moved this year to Vancouver, Canada and that took us some time to solve everything but now I am back! 🙂

This got me thinking about how hard it is for us, humans, to change. This isn’t my first moving, in fact, this is the 4th time I am moving to another city in the past 10 years. You have to start everything again: meet new people -hopefully, make a new friend- learn the culture, habits, etc.

But you don’t need to move to another country to change any aspect of your life. No matter what it is, you have to show up and say to the world what you want. The best opportunities that happened to me was because I pushed myself to go there, even when I was in doubt. I am not saying every opportunity will be great, but at least you’ll learn something from the experience.

Don’t think I didn’t feel scared. I was, but I am feeling better about my choices since I started trying to think about what could go right, always. You should try it.

Object-Oriented Programming with Ruby pt. 1

I had OOP in my college last year and it was a bummer. Looking back, I may have learned the most valuable skill for developers: being a developer == a full-time self-learner (a new concept that I just invented).

But since I quit college and started my internship last year, I felt the need to go back to the basics and finally be able to write good code using OOP fundamentals. I started a Rails tutorial and I noticed that I have never run a Ruby program (without rails) on my terminal!

What I learned most from this experience was that I should focus on learning the foundations before the frameworks, for example: learn Ruby before Ruby on Rails. I wanted to understand why Ruby became so popular and what makes OOP a paradigm so important in Computer Science.

I found a lot of resources online and one of them is the MIT Computer Science which offers a complete Introduction to Computer Science and Programming with Python and I decided to make some notes about it but in Ruby. OOP is given in lectures 14, 15 and 16 if you want to give it a try too. Also found the Docs — Programming Ruby which is a complete material to follow. Both these materials helped me study and are guiding this post 🙂

This is the part one, which will be an introduction to OOP introductory concepts, like Class and Objects. I also started a repository on GitHub where I apply what I am studying to keep a record.

Abstract everything

OOP is not a new concept in Computer Science, but it became very popular only on the 70’s. But why do we need OOP and why did it become so popular? Quoting Prof. Eric Grimson:

Object Oriented Programming is great when you are trying to model systems that consist of a large number of units that interact in various ways.

That’s why OOP is so vastly used and solves a huge amount of problems in our real life because we can solve almost every problem with this paradigm! By gathering together some data it allows you to write better code, which means it is easier to test and to refactor.

we are all objects

Let’s go back to the basics

Everyone who starts to study OOP start to hear a lot about ClassesObjects, and Instances. Let’s explore them a little theoretically.

Classes, Objects, Instances

You must have heard that in Ruby, everything is an object: a Class is an Object; An Instance is an Object and an Object is… I think you get the idea! Although in our real world we deal with lots of objects, it’s hard to abstract it to code — at least for me. But once we understand the purpose of it and the concepts behind it, it starts to make more sense and things start to get easier #hopefully.

A Class is a collection of data and functions that make sense to stay together because they have characteristics in common. It helps your daily work by preventing you from spreading pieces of code through different files.

As prof. Eric Grimson said in one of his classes, it’s easier if think of a Class like a stamp: you can print several objects of a Class using its stamp. Every new object created using a stamp will have the same characteristics but they will still be different objects because they are unique copies of that stamp, they’re randomly allocated in different locations in memory.

And why are objects so useful? Because we can manipulate them as we need! What would be of the human race without manipulating everything around, right?!

But how does that Class definition is applied to Objects? Well, when you create a new object it comes with some data. You are instantiating a new Object from a specific Class. You can call this object’s data as attributes. You can define them in your initialize method (a special Class method), for example.

You can really manipulate them to your needs with the functions associated with its Class. You can call them instance methods. Now let’s create a simple Class to see this in action.

So instance and objects are pretty much the same, it’s up to you how you wanna call it 🙂

Show me the code

We are going to create animal instances from the Animal Class (you can also see the code on GitHub). But before diving into the code, let’s think about the implementation a little. Let’s say we need to create an Animal Class so it’s easier to create a lot of cute animals to play with.

What does an animal have? What does it do? (We don’t need to think about everything now, we can always add/remove any information about our classes whenever we want).

We know that animals have a name, an age, a weight and a date of vaccination. These are the attributes. We also know that animals need annual vaccination, sleeping and playing. These are the object/instance methods. We’ll write a method to check if the animal has taken its vaccines, so if a new animal with outdated vaccination is created, we’ll get an alert.

We can put this into a file called animal.rb:

class Animal
  # The initialize method is a special Class method.
  def initialize(name:, age:, weight:, last_vaccine_year:)
    @name = name
    @age = age
    @weight = weight
    @last_vaccine_year = last_vaccine_year
  end

  def is_vaccinated?
     current_year = Time.now.year
     return true if current_year - last_vaccine_year <= 1
     "#{name} has not been vaccinated this year yet"
  end
end

What’s next

This simple Animal Class works fine, but it’s pretty generic, don’t you think?. What if I want to have cats, dogs, birds, fishes, horses…? I am going to need to think of Classes like Species in Biology… cool, right? But that will be our next subject when we will discuss Inheritance and Encapsulation.

If you have any questions or want to suggest/contribute feel free to comment here. I am learning Ruby as well, so any suggestion is welcome. See you soon!

RubyConfBR 2017 — eu fui!

Esse ano eu tive a oportunidade de ter participado da RubyConf edição 2017, que aconteceu em São Paulo, no mês passado. Vou aqui falar sobre algumas coisas que curti e compartilhar algumas coisas que pensei durante esses dois dias de evento.

E não teve só Ruby e Rails, teve de tudo um pouco e isso foi bem legal. Não ficou tão restrito, mas não ficou tão aberto também. Eu diria que o ponto central da RubyConf desse ano foi discutir sobre o futuro da comunidade Ruby, novos paradigmas que estão conquistando muito espaço e a importância de se discutir diversidade na comunidade em geral.

Sua experiência importa, por menor que seja

Nem sei como agradecer a oportunidade, mas eu falei sobre como estão sendo meus primeiros meses como desenvolvedora junior/estagiária (você pode conferir os slides aqui) junto com a minha amiga Elizabeth Ramos.

Confesso que fiquei um pouco ansiosa em apresentar o tema, afinal havia no eventos pessoas da comunidade Ruby que manjam muito de Ruby e outras coisas, com conteúdos beem técnicos. Mas aí quando no final da apresentação, uma moça falou “eu queria ter ouvido isso há um ano atrás quando estava passando por isso” fez tudo valer a pena :).

No fundo, minha maior motivação foi justamente essa: se eu tivesse visto alguém falar sobre isso há alguns anos, com certeza teria me sentido mais confiante para ter mudado de área antes. Isso me lembrou de um vídeo que vi uma época sobre como podemos influenciar as pessoas e sermos líderes todo dia, por isso tento ser gentil e motivar no que falo no meu dia a dia.

As pessoas têm medo de perguntar — e isso é normal

Eu me incluo aí nesse range. Quem tá começando e vai num evento assim, se sente muito intimidado para fazer networking e conversar com pessoas mais experientes. “Mas é só chegar e falar comigo”, beleza, mas nem todo mundo se sente à vontade para iniciar uma conversa assim do nada, então não custa nada tentar se colocar um pouco no lugar da outra pessoa.

Caso você seja uma dessas pessoas que têm bastante experiência, tente chamar alguém que está começando e troque ideias com essa pessoa. Você pode fazer a diferença na carreira dela, acredite! E se você for uma dessas que se sente intimidada(o), tente se esforçar um pouco mais nas próximas ocasiões, Networking em eventos assim fazem toda a diferença na sua carreira 🙂

Diversidade foi o diferencial

Eu já fui em alguns eventos de Software e confesso que a RubyConfBR foi diferente. Foi bem confortável e me senti acolhida. Isso só foi possível porque a Alda Rocha fez um trabalho incrível de incentivar mulheres a falar. Alda, você conseguiu e com certeza contribuiu para que este evento se tornasse histórico ❤

As palestras que mais gostei

Carreira e programação: caminhos e práticas — Guilherme Silveira

Essa talk foi mais sobre dicas de produtividade para fazer seus projetos, como conseguir seu primeiro emprego na área, etc. Além de ter sido muito divertida (:

Programming in Ruby for Arduino — Ricardo da Silva Ogliari e Dyan Carra

Fiquei mais animada ainda para voltar a mexer com Arduino, desde o ano passado que o meu está de lado. Várias ideias para os próximos meses!

Arduino + Ruby = ❤❤❤

Metaphors Are Similes. Similes Are Like Metaphors — Coraline talk. Achei esse vídeo da mesma palestra em outro evento, recomendo!

Foi muito legal, nunca tinha presenciado uma talk assim tão diferente! Bom para irmos além do código e pensar em Software de uma maneira mais geral.

Como não escrever seus testes — Camila Campos

Eu ainda preciso estudar muito sobre testes, fico bem perdida, mas sempre legal já ir vendo as melhores práticas. Essa talk me fez apressar ainda mais os estudos sobre Testes!

Testes de Integração com CI — Geisy Domiciano

Pensar em todos os casos de uso para os seus testes, aprendizado para a vida toda!

Algumas eu não consegui chegar a tempo, mas as que fui me deram várias ideias e com certeza vão acrescentar muito na minha carreira. Algumas eram de tópicos bem avançados, mas fui mesmo assim para já ter uma ideia de como as pessoas mais experientes estão trabalhando.

Dicas para próximas edições

Não sei se foi devido à minha talk ou a alguns comentários que fiz em algumas palestras, mas acabei conhecendo muitas pessoas que estão começando também e ouvi algumas coisas interessantes que acho que vale a pena compartilhar aqui.

Algo que pode ser legal para fazer com que haja mais interação entre junior’s e senior’s seria ter um espaço dedicado à essa integração, um stand como “Ask me anything”, em que uma pessoa senior fica lá por alguns minutos e qualquer um pode ir conversar/trocar ideias com essa pessoa, por exemplo.

Também seria legal ter mais conteúdos voltados para quem está começando. De todas as palestras, apenas a do Guilherme Silveira foi mais voltada para esse público. Ou até mesmo espaço para que juniores falem na conferência sobre o que estão aprendendo, como estão superando os desafios, etc.

Finalizando…

Em dois dias de RubyConf, pude compartilhar muita coisa e aprender muitas ainda. A principal foi a de que a comunidade Ruby é maravilhosa e eu tenho muitos trilhos para construir e descobrir pela frente. Conheci pessoas maravilhosas por lá e com certeza essa caminhada será bem acompanhada e divertida.

E você, foi também? O que achou? Compartilhe aqui! 🙂 Até a próxima!

How does it feel to be a junior developer

When I go to events and I meet others juniors developers like me, everyone starts to talk about one thing (in fact, that’s why we get together in the first place): “it’s been so hard, but I am loving it!” So I decided to talk a little about this today and maybe help others who are in the same situation.

Your first weeks

You are so happy someone finally hired you and are excited to work with a team and develop the software. Suddenly you start to feel a lot like this:

  • You are terrified because you think you’re gonna be the intern who dropped the company’s database.
  • You hold your breath for a few seconds before typing git push origin because you are afraid you will push it to master by accident.
  • You have an idea of how to solve a problem, but you are terrified of breaking something important.
  • You move other’s cards in Trello by accident.
  • You are afraid to ask for help again to the team, they all look so busy solving complicated tasks!
  • “How am I going to ask for help if I don’t even know what is happening after spending almost 3 days trying to understand what I am supposed to do?! “
  • “How can she/he find the problem just by looking at it for like 3 seconds??”
  • “I hope I can be a great professional like this person one day!”

Some tips that may help you during this phase

After you freak out a little — or a lot — you start to think:

  • Oh no, that’s why nobody hires people without experience. They will fire me, I know NOTHING!
  • You feel like you are a burden to the team
  • hello Darkness, my old friend

Unfortunately, this is a very common experience for junior developers. Do not let this put you down, please. This is a sign that you are persevering and you’ll be fine. Here are some tips that I’ve learned that may be helpful when working on a team:

  • Understand and study a lot about Git. Seriously.
  • If you find a command line that you don’t understand, always ask if that’s okay to use it. It’s really important to check the source of the commands and to understand how it works!
  • Write clear and self-explanatory commits and Pull Requests.
  • Read the documentation, even if you don’t understand it at the first time.
  • Write down commands that your team uses frequently so you don’t have to ask every time.
  • Take 1 hour per week to learn something new will help you improve your learning journey.

How to motivate yourself

For those moments when you feel like you should quit:

  • Remember that you get to every day with people who have a lot of experience and have a lot to teach you (and I am not only talking about code) and they were in the same position years ago.
  • Celebrate every small victory that you accomplish every day.
  • If you are stuck for days, ask for help.
  • Know when and how to ask for help.
  • Talk to others so you can share your feelings with other juniors and seniors too and ask for advice.
  • When you feel like you still got tons of things to learn, remember how much you’ve learned until today.
  • Work on your motivation and enjoy the process. Try your best every day, try to improve your mental health. It can become a stressful process that may make you lose all the fun about programming.

How are you doing being a junior developer? Have something to share here?Do you remember how your first internship was like? What terrified you the most? How did you overcome your fears? What do you have to say for junior programmers like me? See you next time!

How I landed my first software internship

Since the beginning of 2017, I was thinking about getting an internship to practice the things I learned and to see how people solved real problems using software. Unfortunately, things didn’t happen in the way I expected.

I follow some groups aimed at beginner programmers and almost every day someone would share how difficult it is to get the first opportunity, especially for those transitioning from another area. In fact, it is very hard to find a place where you can start without having much experience, even if you are motivated, curious and eager to learn.

People just look for senior developers ready to fit in the position but underestimate the value of training a junior. And that sucks. I believe that everyone who is a good professional today is someone who had a great opportunity to start, in a place that values knowledge sharing and skills that go beyond coding.

So I am here today to share some things that I think helped me to finally launch my project of being a software intern last year and I hope this can help others in the same situation:

Networking, networking, networking

I decided this year to go to tech events more often and that made all the difference. I read this everywhere, but I was always busy studying for my tests and I decided to change that a little. By doing this, you can show up, meet another amazing people who can teach you a lot of stuff and perhaps meet a potential company that values your efforts in learning how to code.

In fact, it was on Rails Girls Sao Paulo 2017 edition that I met the CTO of the startup where I did my first software internship 🙂

Build a portfolio for yourself

What I mean is that usually a portfolio is made to show your skills to other people, but instead I think you should focus on building one to develop your skills and to build more confidence. This will help a lot during this journey. I am coding a personal project right now (which I am very proud of) and I am learning a lot of cool stuff. It gave me a push to go to Rails Girls Sao Paulo as a coach (again, where I met the CTO of the startup where I did my first software internship 🙂

Search for companies whose products you like

Last year I started to study more about finance and investments. I combined that with my internship search and started to look for companies whose products were in the financial area.

The more you know about what you are looking for, the better for you because that lets you focus on some technologies, for example. I knew that it may not come true, but dreaming big does not cost money, so I didn’t care about it. For me, this was more exciting because when that finally happened, I would be working with experts in that field. And in that case I would be learning more than coding, right?

It is also important to say that it’s not a problem if you haven’t figured this out yet. Maybe you’ll find a cool company that motivates you to like something new? Never stop exploring!

Show them what you like to do

I always liked writing and I’ve been doing this on my blog for almost 2 years and I never imagined that it would be a plus. But I realized that it is!

Maybe finding a way to show your hobbies or interests is something that will distinguish you from other candidates. Perhaps you enjoy making tutorial videos? Or drawing/illustrating concepts? There are infinite things that you can do to share your learning path and help you show how much you can offer.

Ask your friends how was their first internship

And a final advice to help you relax and focus on the big picture: ask some friends to share with you how was their first coding internship. It also helps to be a member of communities as CodeNewbieNewbie coder warehouse and Tech Ladies (an amazing community for women in tech). People are very friendly and always happy to help.

I even asked the Practical Dev community to give me some advice for new interns and I got valuable answers there. You will see that everyone that is starting knows more or less the same as you. You are on a good journey, don’t give up. While you don’t get there, prepare yourself for when the opportunity shows up!

A personal note about my hiring process

Another great decision that I made this year was to start therapy. I was getting really anxious about not finding a job and I started to notice that it was affecting other areas of my life. When the opportunity came, I went into a spiral of anxiety that I’ve never faced before.

All of this is to say that I was ready to give up on my hiring process. Yes, you read that right. I tried to do a pair programming with the CTO and I was frozen. I wanted so much that job that I was caught in a wind of bad thoughts of how I was not ready and no one would hire a person that did not know how to code and more bad thoughts. Maybe I should study one more year to feel ready to apply again, I started to say to myself.

I sent an email saying that I was not ready and I did not want to make him lose his time with me. But then, he called to go talk with the team next day and I was really honest about how I was feeling.

I don’t know exactly what I did right, but they accepted me. I was very welcomed by the team and I will be eternally grateful for this opportunity. If I had given up, I wouldn’t be here writing this.

So, if you are facing some real issues like anxiety, find someone to help you and take care of yourself. Mental health is as important as you getting an internship. And if you are scared of not succeeding, go scared. You will never know if you don’t try.

A little funny fact: The hiring process was occurring at the same time as when the movie It was being played in theaters and I went to see it. While watching the movie, I suddenly started to imagine the clown would appear to me as a code interviewer (I am kidding (in part xD)).

Have any other advice to add? What do you think that is holding you down from getting an internship? Want to share anything else related? Feel free to comment and to share with someone that you know that is on the same journey. Cheers!

How to apply your coding skills to turn yourself into a self-made millionaire

Before you start to read, I have some things to say. I am not a millionaire *yet*. I like coding and studying investments. And lately, I’ve been reading a lot about Business and how to create a product in order to generate passive income that will help me achieve financial independence faster.

I have been following some people from Indie Hackers and what I really like about this community is that you don’t need to create the next revolutionary startup (unless you want it) to be in business. There’s a lot of people who solved a problem they faced for months or years until they saw there was an opportunity to start a small business and make some money.

Eventually, your business can get big or not. And that’s okay if that’s okay with you. You don’t need to be the next Google, the next Uber in order to be successful, and you don’t even need investors. Startup life is something that you really should get to know well before jumping in because it can be (stressful).

I was reading Stephanie Hurlburt blog another day and I found this great article about software development and Business :

I know many developers who are essentially making products and giving them away for just a salary or throwing them out because they don’t truly understand their worth. Next time you work on a project, really think about what your work is worth and get creative about how to get at that.

This reminds me that, as a developer, I have a feeling that almost everybody I know don’t believe they can run a business, so they don’t even try. Of course, for us, marketing and dealing with clients isn’t something that we would usually bet our money on. Sales and software development are totally different things, and it’s hard to sell something to a client that wants something you know it’s impossible to do build as a developer.

But that’s worth trying. Do the math: let’s say your product generates a recurring monthly revenue of $ 1,000. Multiply that for 12 months (1 year) and for 60 months (5 years). That’s a nice amount of extra money, right? That money could be put into investments. When you get the taste of making more passive income I don’t think you’re gonna settle for less.

Think about being financially independent. Don’t get me wrong, I know that will not be easy. But wouldn’t that be great if you had to work only on what you love and not because you have to pay your bills? Wouldn’t that be great if you had the time (the most expensive thing in this world) to live your life the way you want it? That’s the spirit. Set your goals and don’t settle for less, my friend.

Let me know how many of you already have a business and how many of you are interested in having one. Cheers!

Fui no Rails Girls, e agora?

Esse ano a edição do Rails Girls São Paulo aconteceu no fim de semana passado, nos dias 18 e 19 e foi no espaço roxinho da Nubank. Em 2015, eu fui como participante (você pode conferir minha experiência aqui neste post) e este fui como coach, uma promessa que tinha feito pra mim mesma. Foi uma experiência que acredito que todos devam passar, pois o pouco que sabemos (ou que achamos saber) pode ajudar alguém e mudar a vida de todos nesse processo.

Uma das coisas que mais me deixam feliz nesses projetos voltados a incentivar mulheres a programar é a temática dos projetos que as participantes sugerem. É incrível a quantidade de ideias e propostas que surgem da realidade das pessoas que não são representadas na tecnologia. Eu sempre acreditei no poder da tecnologia e do conhecimento para mudar a vida de muita gente e ver isso na prática me deu mais gás para seguir com os meus projetos e espero que você também 😀

Bom, a intenção deste post é dar uma sugestão de guia para quem quer continuar a programar com Ruby on Rails. Desde já, aviso que é bom você não perder contato com sua coach, pois as dúvidas surgirão e é fácil querer desistir diante de um problemão que não temos ideia de como resolver. Mas com paciência, você chega lá e é muito importante ter uma mentora no início, acredite em mim.

Minha dica é separar um horário por dia, como por exemplo, 30min por dia. Pode parecer pouco, mas não subestime suas escolhas do dia a dia e o impacto que isso traz daqui uns anos na sua vida, 🙂 O ideal é praticar todo dia, assim você relembra mais facilmente o que você fez e praticando diariamente você se compromete consigo mesma, que tal?

Os projetos que sugiro são:

1 – Agile Web Development with Rails

Livro muito bom (de graça!) que ensina a construir um e-commerce, usando metologias ágeis, testes e git :). Muito bom para dar continuidade ao que vocês aprenderam.

2 – The Odin Project

Conheci esse projeto uns dias atrás, é muito bom! E tem uma comunidade bem ativa também, portanto, dúvidas são comuns e você pode conhecer outras pessoas que estão aprendendo também. Já se inscreve e faça um pouquinho de cada vez.

3 – Code School

Esse site é pago, mas se você puder/quiser investir, recomendo. Alguns cursos sao gratuitos, mas a maioria é pago.

4 – RubyThursday

Site muito bom que conheci mês passado. Nas quintas você recebe uma newsletter com tutorias curtinhos, dicas e truques para quem está começando uma carreira de desenvolvodera Rails 🙂

Bom, não adianta nada encher aqui de links, no começo pode assustar, então, se quiser começar nessa ordem, acho uma boa. E sempre lembre que o Google e o StackOverflow serão suas melhores companhias a partir de agora. Só vá com calma, entenda que leva um tempinho até tudo começar a fazer sentido, mas se você gostou de programar, então tudo isso vai valer a pena e é um processo muito bacana. Espero vocês como coaches nas próximas edições, combinado?!

PS. Fui coach junto com a Débora (manja muito de Rails :P) e meu time foi o da Henritta Swan Leavitt (os nossos dos times eram de mulheres cientistas 😀 e tem uma fotinha desse time maravilhoso que tenho orgulho de dizer que fiz parte) e o nosso projeto foi o de listar centro de doações no Brasil, o Doe Felicidade. O código está no github, então, quem quiser contribuir, fique à vontade! É bem legal dar continuidade à ideia, pois você aprende, monta um portfólio e ajuda muita gente por aí <3

 

 

#VamosJuntas