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

What nobody tells you when you decide to learn how to code

If you decided to change your career to a technology related field, you probably faced some internal demons. And the first thing that I want to say to you right now is: it’s hard, but not impossible and it’s worth it. And you’re not alone! I was tired of reading only the good and fun and the unrealistic reality of learning to code, so I want to share my experience and hopefully help someone.

When I was first introduced to coding, I fell in love with programming. Since then, it’s been a roller coaster of feelings and motivation and this year I finally started to feel more confident about my choice.

I see some people saying that programming is super easy, that everybody can learn, etc. Sure, I do believe that everybody can learn, but if you don’t have the passion or the curiosity, I have to say that you will eventually feel like “oh, this is not for me”. And the worst, you will think that you are the problem… “if this was supposed to be easy and I can’t code, then the problem must be me, right?”

Wrong, so wrong! It is a process and there are some things you have to learn in order to survive this journey.

So here are some things that I have learned in the last 1 year doing Computer Science and how I am motivating myself to be a better developer while finishing my degree:

1 – It is hard

Even if you did not have a good education in science and mathematics, that should not stop you. It’s all about how bad you want it.

2 – You have to learn to be patient and resilient

The reality is that you won’t solve all the problems at first, but that is okay. Every time you overcome a challenge you become better and more confident. The point is: you have to learn how to learn and how to persist in face of the daily difficulties.

3 – Do a project that you love, yeah… but it’s not about the destination, it is about the journey

What about when you decide to develop something you love but you have no idea how to start? Search for good practices, good tutorials and ask for advice from someone you feel comfortable to ask. Sometimes you may find yourself struggling with something, but with a little help from your friends, you will get it and sometimes learn more than just how to solve that problem 🙂

4 – Do not ever compare yourself to others

I say this because my boyfriend has almost 8 years of experience in software development and I caught myself having high expectations although I am still learning to code! Frustration is not good, but if you learn from it, you will be okay. So, be careful when comparing yourself to others. Instead, try to learn from their experiences too.

5 – Have fun

Coding is one of my favorite things and sometimes I feel like I am missing this part because I am worrying too much about finishing the semester and doing other personal tasks. But, hey, focus on the present and be proud of yourself because you are investing in the most important thing in the world: your education. And nobody will stop you!

So, what are the others challenges that you faced when you changed your career? I would love to know more about other experiences and learn more. Cheers!

Como ter uma relação saudável com o seu dinheiro

Este é um post bem diferente, mas que queria compartilhar por aqui. De um ano pra cá, mudei muito como me relaciono com dinheiro e acredite, nunca é tarde! Quanto mais cedo você tomar consciência do que significa ter independência financeira, melhor para você. Se você quiser ler mais sobre isso, recomendo o conteúdo que o Leandro Ávila oferece gratuitamente no Clube dos poupadores.

A questão é que muitas das coisas que fazemos são feitas sem reflexão, apenas repetimos o que aprendemos culturalmente e dinheiro é uma questão cultural muito forte no Brasil. Um exemplo disso é que a maioria das pessoas acreditam que o dinheiro serve apenas para gastar! Pois bem, eu não sei em que mundo você vive, mas no meu mundo, dinheiro é poder e símbolo de independência financeira e se você não tiver controle nem consciência do que fazer com o seu dinheiro, as lojas irão fazer isso por você.

E acredito que você não queria depender de um governo corrupto para garantir que você terá uma aposentadoria, certo? \o/ Essa citação do Leandro Ávila é muito legal e te deixa bem pensativo:

Se existe uma coisa que devemos diminuir quando estamos falando de dinheiro, essa coisa se chama dependência. Quanto menos você depender financeiramente do Estado, instituições de previdência e até de amigos e parentes no futuro, melhor será para você. A dependência financeira nunca foi algo desejável. Busque mais liberdade. Quanto mais independência financeira, mais liberdade, mais possibilidades, menos problemas e mais tranquilidade. A independência financeira não é garantia de felicidade, mas ela ajuda nas áreas da sua vida onde o dinheiro tem utilidade.

E isso foi justamente o que me fez mudar de comportamento sobre dinheiro, principalmente quando pensei no quanto eu seria feliz se trabalhasse no que gosto e não porque tenho contas para pagar. Geralmente as pessoas entram na ‘Corrida dos Ratos’ e fazem contas sem nem perceber e aí vão gastando cada vez mais com coisas para fazê-las esquecer do trabalho! Louco, não?

A partir de agora, sempre que vou gastar com algo, faço muitas contas e decido o que é melhor, nada por impulso. Até porque geralmente o impulso de consumir vem de um problema interno relacionado à sua vida, então, muito cuidado ao consumir sem parar para pensar antes!

Então aqui vão algumas dicas para ter uma relação mais saudável com o dinheiro que passei a praticar e recomendo:

1 – Multiplique o valor daquilo que viocê quer adquirir por 2 ou 3 anos e veja o impacto na sua vida
2 – Sempre compre à vista (se você não tem o dinheiro para pagar, então não compre)
3 – Dedique um tempinho todo dia para ler sobre um investimento novo (recomendo Júlia Mendonça, Gustavo Cerbasi e Me poupe)
4 – Fale com seus amigos sobre finanças e discuta sobre isso sem vergonha ou medo

Depois que você começa a analisar essas coisas, você aprende a sair do automático e a dar mais valor às suas ações, ao seu trabalho e ao seu tempo. Maravilha, não? Tudo é questão de escolha.

Até a próxima!

Minha primeira linguagem funcional: Elixir

Elixir é uma linguagem funcional que vem ganhando bastante espaço nos últimos tempos. É bom para pensar um pouco fora da caixa, principalmente para quem está acostumado a programar usando apenas linguagens imperativas (C, Java, etc.), como euzinha aqui. Dentre os maiores paradigmas de programação, a funcional é a mais antiga!

As linguagens funcionais podem ser compreendidas como avaliações de expressões feitas pelo computador, em que uma função pode envolver outras funções (se você quiser saber mais, procure sobre Cálculo Lambda).

Fiz o curso Try Elixir, do CodeSchool (gratuito e bem rápido, corre lá!). Nessa mesma semana em que tive meu primeiro contato com Elixir, tivemos uma revisão de funções compostas na faculdade e pra mim foi bem legal ver esses conceitos matemáticos assim diretamente aplicados.

Em Matemática, por exemplo, podemos fazer várias funções dentro de funções. Considere

f(x) = sen(x);
g(x) = log(x);
h(x) = x⁴;

Podemos fazer a seguinte composição das funções acima: f(j(h(x))), ou seja,

sen(log(x⁴))

Assim, pensei em implementar essa função composta em Elixir e para fazer isso, vamos usar o pipe operator. Ele funciona assim (veja mais aqui):

O operador pipe é representado por |>, recebe o resultado de uma expressão e passa ele adiante. Vamos dar mais uma olhada no trecho de código acima reescrito com o operador pipe:

other_function() |> new_function() |> baz() |> bar() |> foo()
O pipe pega o resultado da esquerda e o passa para o lado direito.

Usamos a biblioteca :math, que é a mesma usada em Erlang, ficando assim:


defmodule CompositeFunction do
  def my_example(x) do
    result = :math.pow(x, 4)
    |> :math.log()
    |> :math.sin()
    IO.puts(result)
  end
end

Para rodar local, digite iex para entrar no compilador, depois c(“composite_function.ex”) e depois CompositeFunction.my_example(seu_argumento). E Voilà!

Rodando CompositeFunction.my_example(5) no terminal, ele retorna:
0.15395162623403327
:ok

Espero que curtam, até a próxima!

Outsourcely: promo code de 30% em todos os planos!

Sabemos que atualmente as pessoas buscam cada vez mais por propostas de emprego que lhes tragam qualidade de vida, talvez por isso o número de pessoas que trabalham remotamente tenha aumentado. Dentre os inúmeros benefícios que podemos citar com essa relação de trabalho está justamente um melhor aproveitamento do tempo, a moeda mais valiosa do mercado. Ficar preso em um escritório o dia inteiro, com horários engessados há muito tempo deixou de ser o que as pessoas procuram.

Em contrapartida, torna-se cada vez mais difícil encontrar profissionais confiáveis e qualificados, levando empresas a empenhar bastante tempo nessa jornada, não havendo garantias de que encontrem o que procuram. A Outsourcely é uma plataforma criada em 2014 que vem crescendo bastante nos últimos anos, competindo de igual para igual com outras plataformas já estabelecidas no mercado e promete resolver esse problema. Já são mais de 250.000 profissionais remotos cadastrados de 180 países e mais de 25.000 empresas cadastradas!

Os canais de atendimento também são variados e o pagamento do serviço é feito apenas entre você e o profissional, sem pagar nada para Outsourcely. Além disso, eles oferecem diferenciais que se tornam vantajosos tanto para quem busca profissionais qualificados quanto para quem oferece seus serviços: os projetos são todos avaliados previamente e o freelancer recebe 100% do pagamento (algumas pagam menos de 20%, ficando com a maioria do que você ganharia :/). Além disso, você escolhe se quer um trabalho remoto estável, de 40h por semana ou quer aumentar sua renda fazendo um trabalho remoto durantes as horas vagas (:

E o legal da Outsourcely é que lá você encontra tudo que você procura para o seu produto: Designers, Desenvolvedores, Redatores, Marketing, Contabilidade, Advogados, e muito mais! Lá você realmente vai encontrar os melhores e qualificados talentos que você precisa. Como freelancer, você criar seu perfil e se comunica diretamente com as empresas.

Por isso, se você busca uma plataforma que vá te ajudar a trabalhar remotamente, entre no Outsourcely e use o código staff30 e ganhe desconto de 30% em qualquer um dos planos (você pode testar a plataforma usando-a gratuitamente, mas o desconto é sem vencimento, olha que alegria!). Compartilhe com seus amigos também e aproveitem!

Até a próxima!

Can you get the loop? #Codewars

No final do ano passado meu namorado me mandou esse site super legal para treinar Algoritmos (sempre bom): Code Wars. Porque eu curti? É mais amigável, a comunidade é mais ativa e você cria um clã com seus amigos. Ainda que você seja iniciante, ele te sugere problemas mais difíceis para você ir treinando, além de mostrar as soluções de outros participantes para você analisar e aprender boas práticas depois de submeter sua solução. E já que falamos de clãs, quem quiser entrar no meu, aí vai o link: entre no meu clã! =D

Semestre passado, vimos algumas Estruturas de Dados e dentre elas, listas encadeadas. Daí resolvi resolver um Kata para revisar nas férias e postar aqui para discutir com vocês.

O problema

Pode ser acessado aqui e a seguir a descrição:

You are given a node that is the beginning of a linked list. This list always contains a tail and a loop.
Your objective is to determine the length of the loop.
For example in the following picture the tail’s size is 3 and the loop size is 11.

Portanto, a solução requer descobrir a posição do tail (que será o nó cujo conteúdo se repete) para retornar o tamanho do loop. O que eu fiz foi criar um dicionário e armazenar os conteúdos dos nós até encontrar um que se repete – o tail. A partir daí, rodei outro while para retornar o tamanho do loop. O código em Python pode ser visto a seguir:


def loop_size(node):
    my_dict = {} 
    p = node // node é o head que foi passado como argumento
    my_dict[node] = p //inicializando dicionário com o conteúdo de node
    
    while p.next not in my_dict: 
        p = p.next
     
    my_dict[p] = p
    tail = p // ao sair do loop eu acho o tail, pois é ele que repete
    
    t = tail
    size = 1 
    while t.next != tail: 
        t = t.next
        size +=1
        
    return size

Sei que é possível resolver esse problema sem utilizar dois whiles, mas por enquanto fica essa solução e depois eu posto novamente o código refatorado, pois ainda preciso estudar mais sobre dicionários. Curtiram? =P