Devoxx4Kids Brasil: kids, teens and beyond!

Any ideas on how to spending an amazing time in a nice, hot, sunny, summer day Sunday with your whole family? How about spending the day indoors, in front of computer screens, with the window shades down, together with a hundred kids of all ages in a closed space? Sounds like fun?

You bet it is! We had a great time during Devoxx4Kids Brasil, that happened this past Sunday, in Globalcode’s São Paulo offices. The event was organized by Globalcode, with support from SouJava. A hundred kids filled the corridors and lab rooms, with their laughter and enthusiasm. In front of computers, in singles, doubles and manys, kids of all ages learned about programming, internet of things, robotics, LEDs, games, sensors, computer languages, electronics, Java, and much more!

Kids had a blast! The most asked question I heard that day was variations of “when are we having the next one?”. Like the kid wanting to know if the course was going to happen every Sunday! Even the parents wanted to now “what’s next”.

Several choices, one great fun day!

Lara and Yara at the Scratch workshop. Fun for all ages! (picture by Luis Bicudo, Globalcode)

No wonder they wanted more! There was a choice of classes, each one with its own “WOW” factor. Kids could join the funny class presented by Yara Senger that taught programming using the scratch language. By creating virtual Harlem Shakes with digital monsters or crazy Zebras that followed the lead of a famous flappy-game, kids learned programming skills in a fun, light environment. But maybe they were more into games, and joined Paulo “JCranky” Siqueira on his Minecraft classes. Do you also like to play it? But kids really went crazy with the possibility of creating extra-strong TNTs, infinity-deep holes, and other funny tweaks of their beloved game. My personal favorite was the mixture of programming, robotics and electronics that happened on Vinicius Senger‘s Internet of Things class: what can beat the excitement of building your… your own… robo-stuff-house-light-thing-that-does-really-what? All you need was a quick peek at any of those rooms to hear and see the extreme fun the kids were having.

Karina (right) talks with one of the kids, during the coffee break (photo by Luis Bicudo, Globalcode)

Once the corridors and common spaces became silent and no little critter could be seen dangerously running between other larger beings, it was our turn to join the action. On the aptly named “Bill Joy” room, we got to work on providing some fun for those that have to pay the bills! Me and my wife, Karina Souza, gathered all the parents — that honestly, were a bit lost without their little ones nearby — to discuss ideas for getting involved in their kids computer and programming explorations. I think the famous Bill to whom the room was named after would be proud to see the interest of those big kids in learning and sharing their own experiences.

Parents need help to help our kids!

Lets face it, even for us, developers and nerds, it is not easy to teach our kids to explore the vast array of the computer programming world. OK, OK, there are some of us that are amazing teachers! But for the most part, our kids wonder what is that we actually do! (I remember when my older daughter had a “what your parents do” class, and was very happy to report that “Daddy stays home all day, playing games on the computer”. I’m glad my boss didn’t get that report!). So, while organizing Devoxx4Kids, we were worried about what those poor parents would do, once they went back home and had kids wanting to do more, or telling them that they now “had to” play 10 hours of Minecraft a day, or deciding to see how many LEDs they could pluck from inside the big “LED TV” sitting idly in the living room…

Devoxx4Kids-4-Parents room was packed! Lots of discussions. (photo by Luis Bicudo, Globalcode)

For lack of a better name, our Devoxx4Kids-4-Parents parenting discussion was a lot of fun also. The first thing we need to realize is that just because kids stay all day in the computer, it does not necessarily means they are “computer wizards”, nor it means they are learning highly valuable skills. One father rightly remind everyone that even we, grownups, many times have a hard time focusing. We sit on the computer needing to crank some code, and a few hours later, we’re still reading emails, updating our Facebook status or trying to correct one more person that is wrong on the Internet! Although it is important that they can explore, kids dealing alone with the digital world won’t magically know how to find more meaningful entertainment.

Keeping up with kids digital activities can be a lot harder for parents that don’t have a technical background. That’s why I brought to the discussion the experiments done by Sugata Mitra in his “Hole in the Wall” project. Sugata experimented how kids learn by themselves, and his studies give us some great insights on how we can help our own children to explore and learn things. Many from my generation did experiment that, when we started learning computers when it was a mystery, and our parents supported us, even not knowing what that thing was. We need to support our kids the same way: coach them and probe them to explore and build.

Build. Ship. Look for meaningful entertainment.

Because in the end, it does boils down to building. The Internet is an infinite source of easy, effortless entertainment, that won’t add anything to our kids. We need to encourage them to build, to take the effort of doing something, and delivering what they created. Steve Job’s quote “real artist ship” comes to mind here: “shipping”, be it a video we shoot and edited or a small app we developed, is an important skill for our children to learn. And the Internet is also the most amazing publishing platform, that can give our kids infinite resources to express and build. But we need to help them choose the harder, but more satisfying, entertainment, by building instead of simply watching.

Vinicius, Pedro, Maricy and Bruno (photo by Luiz Bicudo, Globalcode)

At the Devoxx4Kids-4-Parents discussion, we touched in all of this and more. An amazing example of helping our children succeed in things we don’t know about came from Maricy Padilha, when she told us the experience she had with her son. She had tried to get him interested in sports and music and a host of other things that she knew about, but when he wanted to learn computers, she helped him find training (at Globalcode), and he started down a path that she didn’t understand, but that didn’t prevent her from supporting, spending time, and being proud of him (and with him!). During Devoxx4Kids, her now 15 years old son, Pedro, was a co-instructor, helping out Vinicius Senger on the IoT classes.

Time is better than toys. True in the Internet too!

Bruno and Marcelo talk to parents at Devoxx4Kids-4-Parents discussion (photo by Vinicius Senger)

Parents highlighted the importance of spending time with our children, like Marcelo Souza, that told us about when he gave his 8-year-old son his first computer. Starting with a beaten down computer, he and his son worked together to clean, rebuild, reinstall, remake the computer. The time you spend with your kid is more important then the price or the capabilities of the machine. Marcelo has now built a RaspberryPi computer, that he and his son can hack on both hardware and software, and they are now working together on programming. Marcelo said that by having a less generic computer, built specifically to teach programming, it helps cut down on all the distractions, what paradoxically, gives his son more freedom to experiment and explore what really matters.

Kids know what they like. Listen. Adjust.

Juliana (middle) and Manfredo (right) have Saturday classes with Bruno. Here, they are at the IoT Workshop. (photo by Luis Bicudo, Globalcode)

Karina Souza and I talked a bit about what we do with our kids at home, where we host computer classes during Saturdays. We found out that having external friends joining in helps increase the excitement, and contrary to expectations, it also increases the focus on the activities. Sometimes we try to do things our way, meaning the best, but I learned that asking our daughters what they like and what they don’t is very insightful. They know exactly! Our kids prefer activities where they try to solve a problem together, instead of the times they each have to do their own thing. They also prefer to go after larger projects, with several little problems to solve, instead of learning from the little disconnected, educational only activities. It is interesting that Sugata Mitra’s research shows exactly this, but my kids had to tell me before I really “got it”.

More resources to come…

From the things me and my wife tried to everything other parents suggested, we gathered a nice list of resources. There is an wealth of good stuff out there for parents to help their kids going into programming and computers. Since this post is already too long, I’ll compile a list of what we got, and will add as a separated post, to make it easy for parents to find and refer.

Time flew during the discussions, and when we least expected, the Devoxx4Kids-4-Parents activities got to the end. The laughter and noise of the kids outside in the corridor is impossible to ignore, specially since parents have a special ear for that. Before we knew, we all joined them in that moment of happiness! Devoxx4Kids planted the seed. It was amazing to be part of it and we hope that the enjoyment and the energy that parents and kids received that hot, sunny, summer-day Sunday will continue to bring us closer to our kids, so we can learn and build with them the future wonders of the digital world!

Many thanks to the Devoxx4Kids team, for making this possible. And thanks to the amazing friends Yara and Vinicius Senger, for hosting and putting together a memorable event, that will improve each one of our families!

P.S.: There are many more pictures of the event here!

Posted in English, Events, Family, Java User Groups

LinguÁgil – Multi-language, Agile Event

I’m now coming back from a trip to Salvador, a beautiful city in the Northeast of Brazil where I went to speak at the LinguÁgil event. LinguÁgil, as the name implies, is a clever mixture of “Language” and “Agile”. The event joins together many communities that are traditionally not engaged, and mixes many language communities — Java, Ruby, Python, C# and others — all under the common theme of Agility and software development best practices.

Bruno at the opening talk of LinguÁgil (photo by Rodrigo Souza, LinguÁgil)

Bruno at the opening talk of LinguÁgil (photo by Rodrigo Souza, LinguÁgil)

The event is run by several User Groups, and the Java community is represented by JavaBahia. This collaboration between groups is the strength of the event, that not only shows that working together is possible, but also makes the event more relevant, more interesting for attending developers and also more rewarding for potential sponsors. With all the difficulties associated with the making of an event, Java User Groups should consider the benefits of teaming up with other local groups — both Java and also from other technologies — to create something that is larger, more meaningful, and as such, able to attract better speakers. LinguÁgil is a fine example of success doing just that!

Other events in the near future here in Brazil that have achieved success by the joint efforts from multiple communities include The Developer’s Conference (TDC), that brings together many developer-focused communities, and the Fórum Internacional Software Livre (FISL), that attracts many Free and Open Source communities from all over the world.

Pre-event activities: time with friends!

Before the event started, I got to spend quite some time with Serge Rehem, a friend since the time I joined the Brazilian Income Tax Application Java team. With his untiring energy, Serge used to be the instigator behind many activities around Java in Salvador, and was one of the original wranglers that lassoed the diverse communities into working together to make LinguÁgil. Serge also worked on many other initiatives that helped improve the state’s position in the Brazilian development scene. A mixture of developer, entrepreneur, manager, marketeer, Serge has interest and experiences all over the spectrum! It was an amazing time discussing with him marketing ideas for startups and his ideas on how to grow my own startup, ToolsCloud. Serge is the mastermind behind my recent series of videos around open source development tools (pt-br), and we spent time discussing other cool ideas. Be it swimming in the beach in Guarajuba or eating an amazing “Shrimp Bobó” (Bahia definitely has the best sea food dishes I ever had!) we discussed so many things! From new ideas of software products, to parenting and what we can do to help our kids learn about computers and programming, to new business and even religion. I have to thank Serge’s family — specially his wife Larissa — for putting up with our endless conversations!

Tutorials: deep dives into technology

LinguÁgil starts with 2 full days of tutorials. Spread over many parallel tracks, speakers have a chance to present 4 and 8 hours tutorials, diving into a specific topic. My talk was a tutorial on Application Lifecycle Management with Open Source Tools (slides in pt-br), showing how projects of any size can benefit from the amazingly powerful open source tools that exist today, that can consistently reduce project risk while being unintrusive and helping improve developers satisfaction.

Bruno and Edson talk about ALM Open Source tools at LinguÁgil (photo by Rodrigo Souza, LinguÁgil)

Bruno and Edson talk about ALM Open Source tools at LinguÁgil (photo by Rodrigo Souza, LinguÁgil)

I was lucky that Edson Yanaga also came early to the event, and had the pleasure to have him co-presenting the tutorial with me. Edson is a believer of the Software Craftsmanship movement, and his usage of the toolset to promote better development is a burst of energy to those listening.

After my presentation, at the hallway right outside the tutorial rooms, we ended up in the middle of a very diverse group, composed by Java, .NET and Linux developers. That made for a lively conversation! It is always interesting to see how developers in a live setting can discuss and share experiences, that many times is impossible to do online on lists and forums (because it quickly degenerates) or even in traditional events where one technology is dominant. That one discussion proved the success of LinguÁgil’s approach!

A full day of talks: the power of simplicity!

Saturday is the day where the talks happen. One auditorium, one track, one day. The power of this simplicity is sometimes lost when we try to make really large events with lots of parallel activities. But with a single room, developers get to watch the whole set of speakers, and everyone enjoys it. One-track events happening on Saturday is a great way to do something easy to organize, but powerful. In the case of LinguÁgil, it also foster the merging of the communities. Developers don’t self-separate on their own tracks and communities, and everyone has a chance to learn from the success of everyone else.

Bruno and Edson opening talk at LinguÁgil (photo by Rodrigo Souza, LinguÁgil)

Bruno and Edson opening talk at LinguÁgil (photo by Rodrigo Souza, LinguÁgil)

For the speakers, it is great to be able to give talks that span multiple communities, and be able to reach developers from all areas. Together with Edson Yanaga, I did the opening presentation of the event, “Jack, the Giant Slayer, a Cloud Computing Story” (in pt-br: “Escalando o Pé de Feijão”). Going higher and higher into cloud technologies, we spoke about the importance of automation on software development, and how you can benefit from virtualization and cloud technologies to achieve higher levels of automation in your projects, improving both the development side, but also fostering DevOps practices. Although we are Java developers, our focus was on language-agnostic open source tools and ideas, and from the questions and comments, that was appreciated by the crowd.

Using time wisely

Whenever you have time to meet with other developers and friends, better use the time wisely. Since we were meeting face to face, me and Edson submitted a joint talk to JavaOne. I don’t think I ever submitted so early before, and felt really good, glad we found some time to do it! If you have not submitted your talk to JavaOne 2014 yet, why not submit this week?

All in all, it was a great and fun event! I’d like to thank Otávio Santana, director of SouJava and JavaBahia, for the invite to the event, and also, many thanks to Oracle and the Java Champions program for making my presence there a reality! To the LinguÁgil team that received me so well: congratulations guys, you did an amazing event, and I truly enjoyed being part of it!

This slideshow requires JavaScript.

Posted in English, Events, Java, Java User Groups, Open Source

The Year is about to Start!

A couple of days ago a friend of mine told me that “the year is finally about to start”. He was repeating a popular saying that we have in Brazil, that the year only starts after Carnival. That is, today. It is true that the period between New Years and Carnival tends to be slow for projects and activities. But, when my friend said that, it got me thinking… So many things already happened in 2014! The year started with such high energy, that I’m really impressed that we’re just after Carnival!

Start with videos…

January started for me as a crazy time, because I had launched a series of videos to push developers to use better tools for software development. The initial idea of recording 3 videos ended up growing to 6 videos, 2 webinars, 2 interviews, many external participations and several side activities like events and discussions (sorry, those were all Portuguese!). In the end, more the 1500 people followed the “New Year, New Project” series, it was quite a start of 2014!

Add some JCP face to face discussions…

Right in the middle of this, the JCP face to face meeting happened, together with the User Group Summit, in California. At the JCP meeting it was great to work together with Mohamed Taman and Badr Elhouari, representatives of Morroco JUG, the new elected JUG that joined the JCP Executive Committee and also with Jim Gough, London Java Community’s new JCP representative. Together we presented new ideas for more community activities around Adopt-a-JSR and other cool things that companies can do to engage better with JUGs worldwide. For JUGs, there are great ideas on the presentation that will surely help to improve existing or new Adopt-a-JSR efforts.

And several Java User Groups!

Tori Souza and Bruno Wieldt (or vice versa) at the JUGs Summit

Tori Souza and Bruno Wieldt (or vice versa) at the JUGs Summit

In the same venue, and basically at the same time of the JCP meeting, was happening Oracle’s User Group Summit, with a large presence of Java User Groups. So, it is not surprising that many of the conversations during the summit were around Adopt-a-JSR. Besides getting to know what is being done by other groups, we had a great discussion about using Gamefication (led by Jim Bethancourt) and how we are seeing a stronger interest from developers on interactive activities. It was the general feeling that JUGs should consider implementing Hackatons, Competitions, and similar activities for their Adopt-a-JSR efforts and also during events and monthly meetings, that this will help grabbing developers attention.

Insert barbecue here…

The “Chinascaria”, hosted by Steve Chin, Executive Chef Bruno Souza (picture by Steve Chin)

Right before the JCP and JUGs meetings, I joined Stephen Chin in hosting an amazing barbecue at his house. I came straight from the airport, with a brand new Brazilian rotating rotisserie grill, and landed in Steve’s house just minutes before the crowd arrived. Steve and Sharat had amassed an incredible list of typical supplies, from Brazilian cuts to sausages, famous drinks (both alcoholic and non), deserts and more! With the help of Jim Weaver and many others (not to mention the infinite support and patience from Steve’s family!), we sprung a full, authentic, Brazilian barbecue in the hearth of Silicon Valley. That’s Steve’s “Chinascaria”, and you should come if you ever have the chance!

Sprinkle some hackatons and a very very very large event…

Tents at Campus Party: 7 days, 24 hours, 8000 geeks == FUN! (picture by Campus Party)

And talking about hackatons, this is exactly what we did right after the Summit! I’m the President of the Campus Party Institute, and help organize one of the world’s largest gathering of Internet geeks and nerds, the Campus Party Brazil event, in São Paulo. Campus Party is a 24h, non-stop event where thousands of Internet enthusiasts camp for a full week to discuss and experiment the Internet.

Vinicius Senger and Angela Caicedo present on SouJava’s RaspberryPi Hackaton (picture by Globalcode)

During the event, SouJava organized and run a RaspberryPi hackaton, supported by Oracle. The competition highlighted the benefits of doing an around the clock event, and the teams worked for 3 days, with little sleep, to produce some incredible applications! It was great to work with Vinicius and Yara Senger, and all the SouJava team, on making this happen!

Vinicius Senger helps hackaton teams: 3 days, very little sleep! (picture by Globalcode)

Bruno Souza, Vinicius Senger, Edson Yanaga and Priscila Mayumi discuss ALM and Automation in Campus Party (picture by Campus Party)

The RaspberryPi challenge was just one of dozens of activities I was part of in Campus Party. Besides giving several talks, about Cloud Computing, Application Lifecycle Management, Open Source and Startups (talks in pt-br), I’m also responsible for the main stage of the event, and this year I got to receive some great speakers. It was nice to meet Bruce Dickinson, lead singer of Iron Maiden, and watch his must see presentation about entrepreneurship. Another speaker that I really enjoyed watching and talking with was Silvio Meira (talk in pt-br), one of the great promoters of technology and startups in Brazil. There are many things that need to be done in this country to support new ideas and innovative companies, and Silvio knows them all. Very inspiring!

After 7 days living inside Campus Party, I was really ready for the year to end… How come it didn’t even start yet?

More Adopt-a-JSR!

But there was more things happening! Adopt-a-JSR activities are picking up, and CloJUG did a nice hangout with a few JUGs, to share experiences, organized by Alexis Lopez. Most of it was in Spanish (bad Portunhol in my case), but Jim Gough spoke in English. I also added some English notes in the link above. SouJava also started 2014 reinvigorating its Adopt-a-JSR efforts, and with more then 100 participants on the program, we are now running by-weekly meetings, that are going pretty well, thanks to SouJava’s JCP EC representative Fábio Velloso rounding up the participants!

And more hackatons!

IMG_5607

Panel of judges in the IBM Mobile Hackaton (picture by Globalcode)

Proving that developers are interested in more hands-on activity, I helped in one more hackton, this time supported by IBM. On the Mobile Hackaton, developers worked to create mobile applications for large events, like the World Cup. The applications created in 3 days were pretty impressive, and the judges had a though job! The event was masterfully organized by Yara Senger, from Globalcode.

Even a new application server?

SouJava also hosted RedHat’s WildFly launch. We had presentations from Fábio Velloso, SouJava Director, and Arun Gupta, RedHat’s Evangelist. The event was transmitted live (partially in pt-br) from inside the Free Software Competency Center of the University of São Paulo.

Startups! Don’t forget the startups!

Another topic that is attracting a lot of developers lately is the discussions around entrepreneurship and startups. Campus Party had a large area dedicated to the topic, and

Bruno Souza talks about his experiences during Sebrae's StartupWorld event

Bruno Souza talks about his experiences during Sebrae’s StartupWorld event (picture by Camila Vilhena)

every hackaton ends up agitating this discussion also. Recently I was invited to talk about my experiences at StartupWorld, an event hosted by Sebrae, the Brazilian Service of Support for Micro and Small Enterprises. The energy and interest of the startups was very exciting, and I talked about how Cloud and Internet technologies can be effectively used to support and foster innovation.

And now, the year can really start!

Looking at my friend, I wasn’t sure exactly where to start explaining to him how many things already happened in 2014… So, I told him that I’m looking forward for the year to start, because it looks like it will be really really busy! And I’ll jump start it by submitting a talk to JavaOne! That should be a good first move!

So, how does your 2014 looks like? Maybe we can meet somewhere for a barbecue?

Posted in English, Events, Java, Java User Groups, JCP

Ler Inglês é Fundamental para o Desenvolvedor!

(This post is in the Portuguese category. Apologies to my English-reading friends, but the topic is the importance of reading in English!)

Você é ou pretende ser um desenvolvedor de software? Você precisa ler e escrever inglês. Se você não se interessa em ler inglês, não pretende aprender, ou acha que pode aprender mais pra frente, então, talvez você precise procurar outra carreira… Deve haver alguma profissão em que ler inglês não seja importante. Desenvolvimento de software não é uma delas…

Imagine você, desenvolvendo em Java, e precisa usar uma biblioteca. Na sua ferramenta de desenvolvimento, você digita o nome de um objeto e um “.” para ver os métodos que pode utilizar… E vê algo assim:

MetodosEJavaDoc

Quem não tem fluência no inglês, fica perdido… É como se fosse uma espécie de analfabeto no mundo da programação. E isso é o básico. Sem falar em aprender através de artigos na Internet, acesso a livros, participar de projetos open source, trocar experiências com outros desenvolvedores, e muito mais.

Não dá pra fugir: é sua obrigação como desenvolvedor ler inglês tão bem quanto você lê português. E também escrever inglês… Pelo menos tão mal quanto você escreve português! (É, eu sei… escrever bem não é o nosso forte…)

Não deixe para amanhã. E não fique tentando aprender só no trabalho, com livros e artigos técnicos. As dicas são simples, qualquer um pode seguir. Se você já sabe um pouco, é mais fácil. Mas mesmo que você não saiba nada, você pode mudar a sua carreira de desenvolvedor nos próximos poucos meses, seguindo 4 dicas simples!

Dica #1: Leia em Inglês algo que Você Goste

Começe com algo simples, que seja voltado para pessoas de vocabulário médio. Livros leves para crianças e adolescentes são uma boa pedida (Harry Potter, The Hobbit, I Robot, Percy Jackson, Narnia). Escolha coisas que você gosta, como livros de ficção, de esportes, culinária, revistas em quadrinhos, livros de RPG, artigos sobre filmes, sei lá! Algo que voce goste e queira ler. E leia em inglês. Leia com dicionário do lado (um dicionário no seu celular ajuda!), traduzindo palavra por palavra se for o caso. Leia. E quando acabar, leia outro. E outro. Quanto mais você ler, menos palavras precisará traduzir. Lembre-se, seu objetivo tem que ser ler inglês tão bem quanto você lê português, por isso você precisa ler muito. Se possível, abandone a leitura do português um pouco: leia notícias, blogs e tudo o mais em inglês.

Faça isso por no mínimo uma hora por dia. Leia por 25 minutos, focado, sem interrupções. Se for interrompido, começe o tempo de novo. Pare, descanse por 5 minutos: leia email, vá beber água, assista um filme no YouTube (ei! 5 min só!). Faça mais 25 min de leitura. Focado. Faça isso todos os dias, pelo menos até você conseguir ler um livro recorrendo pouco ao dicionário. Nessa uma hora, não leia coisas técnicas nem nada relacionado ao trabalho, muito menos algo que você tenha um prazo. Leia algo que você queira! Ao ler algo que você gosta e se interessa, você não vai considerar isso obrigação, e vai fazer até nas horas vagas e fins de semana. É isso mesmo: todos os dias. Quanto você puder. Esse é um investimento que vai mudar sua carreira como desenvolvedor, então, quanto mais melhor!

Dica #2: Assista Filmes em Inglês, Legendados em Inglês

Assisitir filmes em inglês, legendados em inglês também ajuda bastante. Mas você precisa ter um pouco de vocabulário pra começar, senão, não dá pra entender nada, e não tem como usar o dicionário. Observe que o objetivo é treinar a leitura! Por isso, leia a legenda! O filme ajuda porque são diálogos mais curtos, menos descrições, o visual dá o contexto, te obriga a ler rápido. Assista o mesmo filme várias vezes. Assista filmes que você já assistiu em português. Repetição é importante, é por isso que as crianças gostam tanto de ver o mesmo filme milhões de vezes! Assista algo que você goste, mas procure desenhos animados e coisas pra crianças e adolescentes. Não faça isso com filmes densos, policiais, de mistério, com diálogos difíceis e trocadilhos… Filmes leves e divertidos te ajudam a continuar.

Dica #3: Instale o Jogo Duolingo

Baixe no seu celular o jogo gratuito “Duolingo“. Sempre que quiser jogar um joguinho, jogue o Duolingo. Na fila do banco. Enquanto espera o ônibus. No elevador. Enquanto espera o build terminar… O Duolingo é um jogo feito para ensinar línguas. É viciante, divertido, e realmente funciona. Só cuidado que uma hora de Duolingo não substitui a sua hora de leitura. Use ambos!

Dica #4: Aprenda as Palavras mais Usadas do Inglês

Rubens Queiroz de Almeida publicou na Unicamp um estudo em ’99 mostrando como é possível aprender a ler inglês em 4 meses. A idéia é bem bacana e vai na linha do dicionário que falei acima. Ele pegou as 2000 palavras mais usadas no inglês (ordenando todas as palavras de todos os livros do Projeto Gutenberg) e criou um programa de ensino onde você aprende as palavras na ordem que elas são mais usadas, e publicou um livro sobre isso. A idéia é boa, e se você combinar isso com a dica de ler algo que você goste e queira (porque só ficar lendo palavras é beeeeem chato…), isso vai te dar um foco excelente no seu aprendizado! Você pode baixar uma versão gratuita do livro com as primeiras 750 palavras, que já é um bom começo!

Dica extra: Projeto Gutenberg

Vale um parênteses aqui… O Projeto Gutenberg é o mais antigo projeto colaborativo da Internet, e fornece dezenas de milhares de livros gratuitos, em formato texto, ebooks e até audio books. A maioria dos livros está em inglês, e você pode ler maravilhas da literatura infanto juvenil como Alice’s Adventures in Wonderland, Grimms’ Fairy TalesPeter PanThe Wonderful Wizard of OzThe Life and Adventures of Robinson Crusoe e Aesop’s Fables. Ou então clássicos da literatura e da ficção científica como The Time MachineThe War of the WorldsThe Adventures of Sherlock Holmes. Alguns, como Around the World in Eighty Days, estão também disponíveis em audio books que você pode usar para treinar seu ouvido! Tudo isso de graça, presente de milhares de voluntários. Escolhe um desses, e começe seu estudo!

Sem Inglês Não Dá… Eu já Passei por Isso!

Quando eu aprendi inglês, eu não sabia dessas dicas… Eu era muito ruim em inglês… Estudei o primeiro grau em uma escola que ensinava francês e quando mudei de escola, apesar de ser um aluno razoável no geral, quase reprovei de ano por não saber inglês. Minha mãe tentou e depois me tirou de um curso externo de inglês porque o professor disse que ela estava jogando dinheiro fora: eu não aprendia nada, e só ia mal nas provas…

Mas eu jogava um jogo chamado “Advanced Dungeons & Dragons“, o AD&D, uma espécie de “avô” dos RPGs modernos. Não existiam livros em portugês, e  jogávamos com cópias xerox trazidas por um amigo meu, que, filho de diplomatas, estudava na Escola Americana. Eu sempre queria ser um “Magic User” (na época não chamava “Mage” nem “Wizard” ainda), que era o personagem que mais precisava do inglês: tinha que ler e conhecer um monte de mágicas! Até hoje eu tenho os livros, com páginas inteiras traduzidas palavra a palavra (escrito em letras minúsculas entre as linhas). Quando eu tive a oportunidade de passar um tempo nos Estados Unidos, eu falava pouco, entendia quase nada, mas tinha muito vocabulário e lia inglês com fluência suficiente para ir à escola. Sem saber e sem querer, eu tinha aplicado as dicas desse artigo, e já não era analfabeto em inglês, o que me permitiu realmente aprender inglês!

Minha filha passou por algo similar. Só que em vez de um jogo, ela curte música. E lia (e traduzia palavra por palavra) todas as músicas em inglês que gostava. Lendo e ouvindo música, ela conseguiu um vocabulário de dar inveja. Hoje, com 15 anos, eu passo pra ela livros e textos, que ela acha que não vai conseguir ler, mas lê sem nenhum problema. Ela lê e resolve pendências no Issue Tracker da empresa, que estão todas em inglês. Isso sem nunca ter feito curso de inglês fora da escola. No mês passado, ela fez uma prova para entrar oficialmente em um curso de inglês, e entrou direto no penúltimo ano do curso avançado. Lendo e ouvindo música.

Hoje o inglês é parte fundamental da minha carreira. Foi por ler e escrever inglês que eu pude me envolver com Java quando a tecnologia se tornou pública em ’95, quando tudo que existia era um site e uma lista de emails. Ser capaz de aprender as tecnologias Java enquanto elas são criadas, através das discussões e especificações do JCP sempre me deram uma vantagem competitiva, e me permitiram crescer na profissão como desenvolvedor e evangelista. E vai ajudar você também a crescer na sua carreira!

Leia!

Resumo: leia em inglês. Tudo. Pare de ler em português por um tempo. Leia com dicionário do lado, coisas que você gosta de ler, para que você faça isso com prazer e não como obrigação. Uma hora por dia. Todos os dias. Não se preocupe o quanto você leu, o importante é fazer por pelo menos uma hora.

É isso. Não dói, garanto. Daqui a 4 meses, quando você estiver lendo em inglês assim como você lê em português, você vai descobrir novos horizontes para a sua carreira!

É só querer. E ler! Vale a pena.

Posted in Portugues | Tagged , | 6 Comments

Java 7 has launched!! Congra… What is this now?

I have been traveling quite a lot in the last few months, specifically to help with the Java 7 launch. During very important events, like the International Free Software Forum, FISL, and the very successful The Developer’s Conference, TDC, where SouJava also hosted the Brazilian participation of the pre-launch of Java 7, I and many other JUG leaders, gave talks about Java 7, promoted the good will of the community around Oracle’s efforts, dispelled doubts that Java is losing its importance and promoted the openness represented by OpenJDK.

The party has been fun, with the participation of many Java User Groups, hundreds worldwide. In Brazil, Mauricio Leal, Yara Senger and others from SouJava worked with JUG leaders to help them get giveaways and speakers and to organize more then 20 events. I traveled to several places, side by side with Java’s amazing, (nearly) untiring globetrotter Roger Brinkley, and we worked hard to reached as many developers as possible. In Brazil we had Arun Gupta (that also visited many cities), Simon Ritter, Dalibor Topic, Sharat Chander and others. Many traveled around the world.

This is an important release, Java is really moving forward! So important that despise the fact that several in SouJava expressed concerns about issues in the JCP, we have collectively decided to put those aside and vote for Java 7. We are all putting our credibility in this, to push the technology forward.

I then traveled to OSCONJava, in Portland, and with Fabiane Nardon, talked about the Future Java Developer, playing along with the jokes of “the future Java developer is a retired developer!”. We don’t think so, Java is an exciting technology and has a strong, vibrant future. And Java 7 was really release during OSCON! Very well received into the community, with many “congratulations” messages from JUG Leades, Java Champions and from the NetBeans Dream Team. Lots of twitter posts, and praises from all around! We were all somehow part of this huge milestone for the Java Community! This is the first release ever to be based on an open source project, and OpenJDK is now the Reference Implementation!

But… what is this now? With all those travels (and I’ve visited Seattle and now Pittsburgh), I pretty much missed the next few days… and surprise… Java 7 has a bug, that corrupts data? Looks like it is because it uses by default some new HotSpot optimization? Ok, there is a workaround, I’m sure the workaround has been set by default in all new downloads? No? There is a warning? No? Georges Saab has sent an email to the Java Champions, this is good. But I could not find an Oracle statement for the general public. I did a quick (totally non-scientific) poll with 8 developers that were online. All of them knew there was a bug in Java 7, none of them knew what Oracle said about it. One of them searched and sent me a link that describes the problem. This is not good…

There are timid public mentions: Henrik quotes (in the comments!) Mark Reinhold’s info that it will be fixed (try!) in update 2. Another timid Oracle response came in the OpenJDK mailing list, where Vladimir Kozlov says “we’ll try… can’t promise…”. Outside from Oracle, both Cay Horstmann and @myfear wrote wisely that this is a minor issue. And of course, Uwe, from Lucene, is quoted saying “Oracle took action by changing the priority of the related bugs”. If you go to the known issues on JDK 7 you can see it there, but it does not really tell you that this can corrupt data, and please don’t run without the workaround! Not very hopeful posts…

And I agree with Stephen Colebourne (whose message was the first I saw alerting to this fact): no one seems to be talking about it… Are we afraid to damage this important release? This does not look like a huge a technical issue: the bug has already been identified, an workaround has been produced. But it affects at least one prominent and widely used project. This is political, and the response we see from Oracle is what will define the fate of this. It is Oracle’s response that we’ll be able to quote and replicate. It is the decisive, immediate, steps that Oracle takes to fix this, that will stop the rumors from spreading. And so far, from what I can see, the response is minimal… The news that there is a flaw in Java 7 that corrupts data will hunt us for many years. Unless it can be clarified now. And not soon, immediately. Before the blogosphere spreads this even more!

Not coming forward damages the credibility of a technology that powers the world’s largest enterprises. It damages the credibility of ever JUG leader, Java Champion, Java developer, JCP member, NetBeans Dreamer, that have spent the last couple of years fueling the excitement for the new release. It damages the Java team at Oracle, and the OpenJDK project. Please Oracle, do it, and say it, loud and clear, whatever needs to be done and said. And we can all go back to the party. There are still several “post-launch” events that are happening around the globe, lets make sure developers on those events hear the right message — and that they can download a Java 7 that they can trust.

Posted in English, Java, Java User Groups, JCP | Tagged , , , ,

The Future Java Developer

Working together with Duke Award winner and Java Champion Fabiane Nardon and the also Duke Award Winner and NetBeans Dream Team member Sven Reimers I have presented talks that discusses the Future Java Developer, the most recent ones in JavaOne Brasil and JFokus. Admittedly, we are not particularly visionaries, and our “future” is pretty grounded on experience today. Although during the talk we make some specific previsions, we’re really not trying to foresee the far future nor even debate the future of the Java Technology. The idea is to look at what developers, specially the ones working with Java, can do today, to prepare their own future. Here, I’d like to present some of the main points of the talk.

Software development has always been an unique opportunity. It is what Malcolm Gladwell in his book “Outliers” calls Meaningful Work: “work that is autonomous. Work that is complex, that occupies your mind. And work where there is a relationship between effort and reward — for everything you put in, you get something out“.

An important point about “meaningful work” that Gladwell makes is that it takes time for someone to master. He presents research in different fields — music, computers, law, agriculture — that correlate 10 thousand hours of doing a meaningful work, with being successful on the specific area. Gladwell shows that those that put that many hours are successful, and those that are successful, did put in that many hours. Gladwell also discuss that there is no such thing as a “born” genius, in short, the old saying “1% inspiration and 99% perspiration” is not only true, but inevitable.

Preparing for the future means putting now enough of those 10k hours in things that will allow you  to become better and relevant in the future. With that in mind, software development gives us some interesting benefits, that for lack of a better word, I’ll call here freedoms. Some are old freedoms, existing since software started to be developed, some are more recent ones, that we are lucky to be right on time to benefit from.

Freedom of Imagination

As the Dilber cartoon says: “try to get this concept through your thick skull: the software can do whatever [you] design it to do”. Your imagination is the limit. The lack of constraints make software something hugely powerful, and extremely complex. As a corollary, get through your thick skull that software development is hard, and it is not going to become easy just because there is a new language, new framework or new tool. In 1975 Edsger Dijkstra wrote that “Programming is one of the most difficult branches of applied mathematics; the poorer mathematicians had better remain pure mathematicians.” Got the idea of how hard it is? Developers that get excited doing the hard things and that work on their freedom of imagination will always be ahead of the pack.

Freedom to Run Anywhere

Java was not the first, but was the technology that popularized the “run anywhere” idea. This is not a Java-only benefit: since the industry broke free from the lock-in that developers had in the 90′s, developers learned that they can write software that runs in multiple environments. Today, in one way or another, all development technologies are trying to give you this freedom. Well, maybe not all… But this is something that we should not “un-learn”: do not let yourself become tied to a single vendor or single platform. Choose technologies that give you ample opportunities to experiment with multiple environments, this is the only way to have now the freedom to experiment today with things that will be valuable tomorrow, and also, to guarantee that, when devices, platforms and vendors disappear, you don’t get dragged into the drain with them!

Run anywhere has another side that is as important: once a lot of the code can run in multiple devices, manufacturers can create new devices easier. We are seeing this trend with Android: by leveraging developers knowledge and tools, and allowing (even if only to a certain extent) developers to target multiple devices, it created a strong marketplace that many vendors could participate. With most of the development technologies targeting multiple platform, the future will bring even more devices, and the opportunity will be open to those that keep their freedom to run anywhere.

Freedom to Learn and Build

Open source is a world changing phenomenon, and may be the most important thing for software developers. Like Bart, repeat 10 thousand times, “Open Source is good for me, I’ll fully embrace it”. It is, and you should. If you plan to reach 10k hours of software development, you need to work on software that you are excited to work on, that you are passionate about. And if you want to be ready for the future, you need to be able to learn from what exists and build on other’s work, and build with others, and have others building on what you did. If the future is built on what you helped build, you will be in the right spot when the future happens, you’ll be making it!

Open source has many other advantages, for companies and governments, and users. But no one benefits more then the developer. The sooner you realize this, the sooner you’ll learn to value your freedom to learn and build.

Freedom to Work Anywhere (and with Anyone)

Work from anywhere is a lifestyle that will become more common as time goes by. This has many implications, the most obvious one is that you can choose a great place to live at, and this is not something to ignore. But there is the other side of it: if you need to put 10k hours in something, it needs to be something you like, and chances are, that the best people doing whatever is that you like will not be seating in the next cubicle. Working from anywhere works both ways, for you and the people you’re working with. To work with the best people, work with them no matter where they are: they will not move to your area just because. So, choose what you want to work on, you can work on anything from anywhere with anyone, at least when we’re talking about software development. That also means you need to cope with working with people that are far away from you, be it physically, culturally, financially, linguistically or whatever. Respect that. Free yourself from the constraints of the work place, pursue your freedom to work from anywhere and with anyone, it will open big opportunities.

Freedom from Hardware

Recently there is some buzz about the 3D printing thing, how it will turn manufacturing on its head. Imagine, you need to manufacture something, and you don’t need to worry about building a manufacture plant to do it, all you need is your ideas and design capabilities. Won’t this be amazing? Yes it will. But if you’re a software developer this is true today! Any idea you have, you don’t need to buy/order/install/build a datacenter: you have all the machines you need, 5 minutes away. Dozens of cloud providers are doing the behind the scenes work, all you need is a good idea, and your code. Oh, remember the multi-platform thing we said earlier? Yep, it is valid for cloud too: make sure you don’t get stuck to one of those guys, so choose smartly how you go about it. Of course this is not without it’s issues, there are many. But the freedom to test, implement, grow and even throw away your ideas is already changing software development. And if you think cloud computing is the same old thing of having a server co-located somewhere, you really need to go play with it right now. Free your ideas from hardware constrains, it takes time, so start now.

The future is your future…

As you can see, those possibilities are all true today. But, realistically, they are not the day to day reality of most developers. But it can be yours. So, what about the future? The future has more and more developers benefiting from those freedoms, and that means, more ideas being able to see the light of day, more open source to learn and build from, more devices and vendors to run the code that is developed, more people working together from different places.

Yes, that does means there will be more challenges: we’ll need more code able to run concurrently for one. We’ll need to benefit from the multi-core machines that are showing up. Our frameworks will need to support cloud environments. And yes, languages will show up that will benefit from those things better than the languages that exist today, and there will be new frameworks and abstractions that will allow us to be more productive on this environment. None of that is news: this is the development world. Remember, software development is complex, and no matter how the vendors try to put it, it is not about to become any simpler.

There will be a huge amount of developers coming from development countries like the BRIC (Brazil, Russia, India, China) and others (Africa, Indonesia…), that will have access to more learning because of open source, more chances because of cloud computing, and more jobs because of remote work. Software development will be more inclusive, because those freedoms will give more developers the opportunity to make their 10k hours, and join in. More developers means more ideas, more devices, more frameworks, more languages, more communities, and more open source. Software development is a mixture of engineering and art, and more artists can only be a good thing!

So, in short: to survive the future: learn to deploy in the cloud, while keeping your vendor and platform independence. Learn to work with people from multiple cultures, joining the open source revolution, so you become a better developer and a more connected one. From open source, learn to build on top of what others built, and to develop simple solutions so others can build on top of what you do. Think of services, cloud will provide that, and the new connected devices will require it. Neal Ford talks about the “Polyglot Programmer“, because “applications of the future will take advantage of the polyglot nature of the language world.” Become one!

And, finally, what if you’re a Java developer? You’re on the right track. You understand the importance of multi-platform and standards. Java is one of the most important language for open source software, and Java’s most important features are themselves open source, so you’ll be at ease there. Java is also the main focus of the cloud providers and Java software like Hadoop form the backbone of many cloud environments. Most cloud frameworks are done in or directly support Java. Not to mention that all of the important cool new languages that are being talked about run on top of the JavaVM and integrate well with your Java libraries and knowledge.

In the end, what matters is your passion: to prepare for the future, choose something you’re excited about, consider the cloud, build it as and with open source software, join in or attract people from anywhere. Keep your independence. You’ll do great!


This article is cross posted to my blog at java.net.

Posted in English, Java, Open Source | Tagged , , , , | 5 Comments

SouJava nominated for the JCP EC

This week, Oracle officially nominated SouJava for an Executive Commitee seat on the Java Community Process (JCP), and I’ve been indicated as the group’s representative. Since then I have received many e-mails, and started writing this lines several times, but couldn’t get too far… There is no simple messaging regarding the JCP these days. To even start means touching on all the large issues at stake, including Apache, Harmony, Android, OpenJDK, Java SE, the TCK, JSPA, Open Source, Oracle, and so much more… That’s not surprising. The JCP is at a crossroads where everything Java meets.

So, I’ll start simple and leave the other issues for other posts…

SouJava is an important and active Java Users Group, based in São Paulo, Brazil. It has tens of thousands of members and hosts activities in several cities. The group has been working with the JCP for a long time. It was the first JUG to join the program and has been promoting the JCP in Brazil for years. It also worked heavily to get the Brazilian Government to participate and recognize the importance of the JCP – and to add open source, standards and Java to the Government’s agenda. SouJava also pushed Brazilian developers to participate in the JCP, and many of the group’s directors have joined JSRs, which worked to extend the group’s experience. Our User Group is respected by developers, companies and the government, and participates in major discussions about software development in Brazil. By helping connect the Java and the open source communities, the group had an important participation in the open sourcing of Java. SouJava will bring its passion for open source, standards and Java technology to the JCP to fight for transparency and participation.

As for me, I have been involved with the JCP for a long time, even longer then SouJava. JCP’s Patrick says I’m one of the first individuals to join as a member. I’ve also participated in the backstage discussions of many of the issues that happened. I consider the JCP one of the most important cornerstones of Java technology – Java’s most important feature.

For a long time, I felt at ease with the JCP, since Apache was part of the Executive Committee. Geir Magnusson is a longtime friend, and the fact that he was fighting for the things I believe made me feel I had someone to defend my rights. I respect and understand Apache’s decision to leave the JCP, but for me, once Apache and Geir decided to step down, I felt I was losing my direct connection to the Process.

Personally, I see this as an opportunity to join the fight for more transparence and better developer participation in the JCP, as well as working to make sure the JCP respects the needs of open source communities. My discussions so far with Oracle make me believe that we are aligned on some of these issues, and it’s clear we already agree on disagreeing in others. This is fine; disagreements are, of course, part of the process.

However, there are still major steps ahead: SouJava needs to run the election and receive the approval of JCP members. If the members understand our participation is beneficial, we’ll need to get into the discussion and work out our proposals with Java developers. We understand it won’t be easy and it that is hard to make a difference. But the group is strong and independent. It will not shy away from tough discussions and hard decisions.

I would like to thank everybody for the supportive e-mails. I’m really excited with the opportunity, and will do my best to deserve the support I and SouJava have received. To be honest, I’m also a bit scared with the sheer size of this challenge. I sincerely hope we can measure up to expectations.

Posted in English, Java, Java User Groups, JCP | Tagged , , | 10 Comments