quarta-feira, 4 de outubro de 2017

Is The Internet Becoming Too Big?

I have, for quite some time, been avoiding consuming (reading/watching...) general news. The news is something most people accept as being important in our daily lives, and you have it everywhere around you. Be it on TV, radio, internet or whatever media you're into, there shall be news.

The news is so old that it became ingrained in peoples lives without them even realizing how useless it is. Ok, maybe not all news is crap, but there's so much of it, that it becomes your job to filter it trying to find the good stuff. It's not worth the effort.

Think about it, how many times were you affected by something in the news? And even if you were, what were you able to do with that knowledge? You spend so much time following the news, and the only thing you do with it is having small talk to chat with people?

Since a few years ago I noticed that I learned nothing with news, it didn't add any value to my life, and I decided to avoid it. What I learned is:
  • I have more time for other things;
  • I have less chance of changing my mood because of things happening far away from me;
  • People enjoy talking to you about the news that you didn't know about, so you can still have conversations;
  • People will filter the news for you, they will tell you about important things they think you might care about.

And then comes the internet. I got addicted to Hacker News, some Reddit subs and I tend to read a lot of blogs. But I noticed it's becoming less valuable each day.

Blogs today abuse of sensationalist titles in posts that don't deliver. From my big list of articles on Pocket, I have just 8 as favorites. Even on Hacker News which is a pre-filtered news site, it's common to find bad articles that say nothing.

And then there's also the problem of context. When you get a book, you'll have context for it, is it for beginners or an advanced book? But on blogs, there's no context at all.

That article you read about how Dart is so much better than Javascript was written for teams working on big applications. But it was implicit and you didn't notice. Now you think that is also true for you, a lone developer.

People talk about Javascript fatigue, but it may actually be Javascript-Blog-Posts fatigue. Because people trying to keep up are reading so much contradicting stuff that they're going crazy. One blog says React is the best, another says it is Vue, another mentions another framework and so on, the more you read, the more confused you get. Sometimes even tools people already abandoned come back as the hot stuff you should start using, again.

So, yeah, maybe we should just ignore it and focus on doing stuff with what we already know and get things done.

sábado, 30 de setembro de 2017

My Path To Programming And Where I Got Lost

Programming has been my hobby for almost ten years, but before that, I saw it as a tool to solve problems. What changed? I just realized I have been doing it wrong for a long time.

I'm always looking for better ways to do things, and since I use computers all day, programming was an obvious tool to learn. But somewhere while learning it I changed my focus. It started as "a tool to solve problems" and became "programming craft as a hobby".

I tried to start programming with Delphi, but got annoyed by the complexity and gave up. At that time I still had doubts if I was capable of learning programming. The next year I heard how easy Python was and studied it for a few weeks, and it was nicer than Delphi, but I still didn't like it. Then I saw Ruby and fell in love.

I used Ruby for years (for personal use), did a lot of small stuff and learned a lot of the Ruby standard library. Programming was getting easier by the day. I could do lots of stuff with CLI and was already playing with Sinatra and Shoes.

After years using Ruby for personal stuff, I started considering myself a Programmer. And by then I could, with some effort, build whole applications or even work on open source projects. So, that's not what I did. Why? Who knows.

By this time I had played a little with C and Arduino, and that experience made it clear that C and Ruby were not perfect. They had a lot of small problems that annoyed me and I decided to search for the perfect language.

Now, how would I find the perfect programming language if I had nothing to build? Yeah, today I see how dumb that was. I read and played with a lot of languages and ended up searching for a single language that had all I wanted.

One thing I learned is that there's no perfect language because we are not static. We keep learning and evolving, and what was perfect yesterday might be bad tomorrow. Ruby was my perfect language until I used C, but then my horizon expanded, and my perfect language changed.

I also learned that the language is not the whole story. Even if you know C#, you still have a lot to learn to start building web apps or GUI applications. You'll never be prepared to tackle any problem that may arise. And to make it worse, things change all the time. Did you use Dotnet core last year? It changed a lot already. Did you know Rails 4? Yeah, it changed too.

It makes no sense picking a language because it serves for many types of applications. Because you're not gonna do it all, and also because everything is changing so fast that you'll never keep up. It's better to focus on one type of application. Like web apps only. GUI only or Mobile only and so on.

My problem was that I had no focus, I was trying to be prepared for anything and I became good at nothing. Played a lot and learned little. I ended up not programming for 2+ years, and now I don't even remember most stuff I knew back in 2013.

I forgot that programming is just a tool, languages and frameworks are just tools. The priority should be on building the product, not on the tools you use.

quarta-feira, 22 de março de 2017

Dicas para programadores iniciantes

Se você é iniciante em programação ou está pensando em começar agora, veja estas dicas e comece direito.

Estude Algoritmos

Um programador precisa saber como resolver problemas e como quebrá-los em partes menores, e é exatamente esse o significado da palavra algoritmo.

Um programador estudará algoritmos por toda sua vida, inicialmente o fará diretamente através de livros ou cursos, e posteriormente o fará de forma indireta ao ler ou refatorar o código de outros programadores.

O estudo de Algoritmos é um ótimo ponto inicial no estudo de programação e é muito importante para se formar uma boa base para o entendimento de programação em geral.

Vá com a Maioria

Se você está começando é importante seguir a maioria, assim tudo ficará mais fácil.

Uma linguagem bastante utilizada tem mais documentação, bibliotecas, livros e vídeos, mais blogs e discussões em fóruns, mais pessoas que a conhecem e mais problemas já resolvidos. Esse é um fator muito importante na escolha de uma linguagem e não deve ser ignorado, já que influenciará diretamente em quanto tempo você levará para aprender essa linguagem.

Seja pragmático

Dê preferência por linguagens e ferramentas versáteis.

Com uma linguagem versátil como C# ou Javascript você poderá fazer quase todo tipo de coisas, enquanto com linguagens como Go e Haskell você estará mais limitado às áreas de especialização da linguagem.

Não tenha medo de mudar

É impossível fazer boas escolhas sem ter experiência. E é por isso que você só irá identificar suas más escolhas depois de as ter feito.

Não tenha medo de mudar. Assim que perceber que não gosta de algo ou que há algo melhor, analise suas opções, decida e siga em frente. E não perca muito tempo fazendo análises, compare as suas opções de forma breve, decida por uma e use-a. Só com a experiência você saberá se fez a escolha certa.

Pratique

Não adianta nada você ler vários livros de programação e não treinar. Para realmente aprender, você deve treinar cada pequeno pedaço de código, redigite todos os exemplos dados nos livros (esqueça o código fonte que alguns livros fornecem), e teste qualquer ideia ou variante de algo aprendido na hora, não deixe para depois.

Junte-se

Se você quer aprender a programar, o único atalho que eu conheço é esse: Faça amigos programadores.

Você poderá tentar participar de projetos com seus conhecidos, desta forma, mesmo que o projeto esteja além do seu nível, essas pessoas lhe ajudarão e você aprenderá em poucos dias o que normalmente levaria semanas ou meses para aprender sozinho.

Não é necessário que seus amigos sejam programadores, qualquer pessoa que tenha interesse em programação servirá, se vocês estudarem a mesma linguagem poderão ajudar um ao outro, além de poderem criar desafios para ver quem consegue fazer um certo programa ou jogo primeiro, ou quem o faz com o melhor código, e assim ambos aprenderão muito mais rápido que sozinhos, já que cada pessoa pensa de forma diferente, estarão explorando mais da linguagem do que individualmente.

Crie

Tente coisas novas, invente, crie seus próprios projetos, por mais banais que pareçam, a cada novo projeto você irá notar um grande avanço no seu aprendizado e entendimento, especialmente quando o projeto é desafiante o suficiente para você duvidar de sua capacidade de realizá-lo.

Sabe aquelas ideias onde você pensa "Talvez eu consiga fazer isso"? Esses são os projetos que mais vão te ensinar, invista neles.

Ensine

Se possível, tente ensinar tudo o que você já aprendeu, seja dando dicas para um conhecido ou montando um blog e publicando lá os seus conhecimentos e dicas, compartilhe.

Quando tentamos ensinar algo precisamos reorganizar e consolidar as informações mentalmente, identificando assim nossos pontos fracos, que então poderemos complementar com pesquisas, desta forma nos aprofundamos mais no assunto.

As pessoas que estiverem aprendendo com seu material irão fazer perguntas sobre pontos que o material não cobre, ou pontos que precisem ser melhor explicados, e assim você refinará seus conhecimentos ou até mesmo aprenderá novas coisas.

Participe

É muito provável que haja uma grande comunidade em torno da linguagem que você decidiu estudar. Tente participar dessa comunidade o quanto puder, as possibilidades são muitas, normalmente incluem: Listas de Emails, Fóruns, Blogs, canal IRC, Slack e projetos no GitHub.

Aprenda a pesquisar

Devido ao grande número de pessoas com acesso à internet, a probabilidade de que alguém já tenha tido o mesmo problema que você é muito grande, então deve ser fácil encontrar a resposta em algum lugar, seja um blog ou um fórum.

Antes de sair perguntando como resolver o seu problema, pesquise. Muitas pessoas acham mais fácil perguntar para alguém, mas assim que você entender melhor como realizar suas pesquisas, verá que é muito mais rápido e prático procurar as soluções para seus problemas do que perguntar e aguardar a resposta.

Is The Internet Becoming Too Big?

I have, for quite some time, been avoiding consuming (reading/watching...) general news. The news is something most people accept as being i...