Jump to content
Vasco

Programador Autodidata

Recommended Posts

Vasco

Bom dia 

Eu gostaria que partilhassem as vossas opiniões acerca de um assunto. 

Acham realista ser um muito bom programador estudando sozinho? Tenho bases de C/C++, mas nada de extraordinário. 

O que recomendam a aprender primeiro de forma a ser o melhor programador possível? 

Gostaria também que recomendassem sítios para aprender que eu possa não conhecer. 

Obrigado. 

Share this post


Link to post
Share on other sites
M6

Viva :)

A tua questão lava a uma dissertação filosófica sem fim, pelo que vou tentar abstrair-me dessa questão e apenas referir apenas a minha experiência e necessidade enquanto profissional na área de TI.

Conheci ao longo do tempo vários tipos de programadores, desde aqueles que só o eram de nome até super vedetas idolatradas pelas empresas. Se em relação aos primeiros compreendi rapidamente que não é o tipo de profissional que quero ao meu lado, quando ao segundo, bom, depende. Depende não das características técnicas mas sim de outros fatores como sejam a comunicação, documentação, relação interpessoal, interação social, etc. (uma vez que tecnicamente dificilmente haveria algo a apontar).

Entre estes dois extremos está, obviamente, o "resto do mundo", onde eu, aliás, me considero incluído.

Se pensares bem no que é programar, não é mais do que pensar, encontrar uma solução para um problema e um passar essa solução do pensamento lógico/algorítmico para uma determinada linguagem de máquina.
Este processo é, para mim, o mais importante. Muito mais importante do que conseguir apresentar a solução numa única linha de Perl contra um código de 45 linhas em VB, C, Java ou noutra qualquer linguagem.

Uma coisa que aprendi há muito - e que ficou claro ao ler artigos do Joel Spolksy há muitos anos atrás - é que quem quero ao meu lado a programar deverá ser (palavras do Joel):

  • Smart
  • Get Things Done
  • Not a Jerk

Ou seja, alguém que sabe pensar, que sabe fazer/concretizar/executar e que não é um parvalhão.
Para mim, e reitero que isto é apenas a minha opinião pessoal, um bom programador é alguém que cumpre com esses três requisitos.

Todos sabemos que qualquer um dos requisitos tem graus de variação e cada um de nós será diferente, mas é fácil de compreender que há um limite mínimo que é aceitável e os parâmetros não têm todos o mesmo peso. Por exemplo, alguém que é muito boa pessoa mas é incapaz de resolver um problema - para mim - não serve, alguém que é excelente a pensar e a executar mas é um perfeito imbecil - dificilmente serve.

Assim, a tua questão vai ter tantas respostas diferentes quantas as pessoas que responderem. Para mim, é isto, haverá certamente outros que usam outros parâmetros (por exemplo a malta dos RH tem por hábito medir outras coisas).

Espero ter ajudado mais do que ter complicado :D


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
Vasco

Obrigado pelo seu comentário. 

Entendo perfeitamente o que quer dizer. 

Tenho imensa vontade de aprender (ou voltar a aprender) e apesar de ser novo queria começar o mais rápido possível, mas no entanto acho que me falta um certo encaminhamento. Não sei bem por onde começar e qual será o caminho certo para seguir nesta fase inicial, e abri este tópico para ter o vosso testemunho pois vários membros já terão certamente uma vasta experiência. 

 

Share this post


Link to post
Share on other sites
Ricardo_sa

Olá, Boa noite

Vi a questão do Vasco e estou com o mesmo "problema"..... Fiz uma licenciatura em eng de sistemas informáticos mas acabei por nunca exercer qq função nesta área…… A licenciatura já lá vai à 5 anos,

A minha questão é, se quiser tentar uma oportunidade de trabalho nas TI vou ter de me agarrar em casa, mas que linguagem/plataforma será mais acertadas estudar para estar minimamente preparado ??

Agradeço desde já a Vossa opinião.

Cpts

Ricardo

Share this post


Link to post
Share on other sites
M6

Viva.

Não há respostas certas à questão da linguagem. Reparem, o Cobol tem morte anunciada à décadas e, no entanto, todos os anos se escrevem milhões de linhas de código em novos programas e em manutenção dos já existentes.

Mais do que a linguagem é saber corretamente o paradigma em que se está a trabalhar. Por exemplo, saber como se desenvolve de forma procedimental ou orientado a objetos, é, para mim, mais importante do que as linguagens em si. Porquê? Porque o conhecimento do paradigma permite-me pensar a solução de forma adequada, e a sua transição para código é uma questão de sintaxe, quem escreve C escreve o mesmo programa em Pascal, ou quem escreve em C# escreve o mesmo programa em Java. Obviamente há nuances aqui decorrentes das próprias linguagens, por exemplo, tenho mais facilidade em "enforcar-me" a escrever um programa em C do que em Pascal por ter menos experiência em C e pelo facto do C me "dar acesso mais fácil a toda a corda que eu quiser usar para a forca". ( :D Creio que percebem o que quero dizer. )
A verdade é que o conhecimento vem muito da parte prática, pelos erros que cometemos, pelos bugs que criamos e corrigimos, quando nos deparamos com problemas que temos de resolver e temos de repensar e testar estratégias diferentes, isso vai-nos fazendo explorar mais a linguagem e levá-la a fazer coisas que nunca tinhamos pensado fazer de uma determinada forma.

Voltando à questão das oportunidades, podem olhar para os anúncios de emprego para terem uma ideia sobre as necessidades do mercado. Tenham em atenção que a maior procura quer dizer também uma maior oferta e, por isso, mais concorrência. Há certas coisas que considero que qualquer um devia saber, pelo menos ao nível de não se atrapalhar, são aquilo que chamo de "canivete suíço", como é o caso da combinação do PHP com o MySQL.

Tenho, no entanto, de fazer dois alertas caso usem os anúncios como fonte de pesquisa.

1. Cuidado com os recrutadores que procuram "5 anos de experiência" (esta expressão é muito comum) de malta "recém-licenciada" (ou termo idêntico). Parece parvo não é? Pois, é mesmo parvo. Essa é uma de muitas formas de dizer "quero pessoas boas mas vou pagar ao nível de um estagiário", pelo que devem pensar bem se esse é o tipo de empresa/cultura em que querem trabalhar (não estou a dizer para o fazerem ou não fazerem, apenas alerto para que o façam em consciência).

2. Cuidado que a quantidade de ofertas reais é bastante inferior aos anúncios existentes. É normal haver 3, 4, 6 anúncios de várias entidades distintas para uma mesma vaga. A razão é simples, quem realmente tem a vaga contacta empresas de RH ou consultoras para lhe arranjarem uma pessoa, cada uma delas coloca um anúncio e, muitas vezes, elas próprias contactam outras empresas para saber se têm alguém para sub-sub-contratação, originando mais procura para uma única vaga real.

Espero ter ajudado.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
Vasco

Obrigado pela resposta. 

Eu ainda estou no meu 1o ano de faculdade (licenciatura em Engenharia Informatica) mas queria começar a aprender sozinho, para nao ir "às escuras", porque como disse eu ja tenho bases de C e também tive de java, cheguei ate a falar de orientado a objetos, mas sinceramente ja nao me recordo de muita coisa 

Share this post


Link to post
Share on other sites
PsySc0rpi0n

Boas.

Só mais uma opinião de alguém que apesar de gostar muito de programar, infelizmente a vida ainda não me proporcionou um trajecto profissional nessa área. No entanto, e até a mim devia aplicar isto, acho que o primeiro passo será perguntar a nós mesmos em que área queremos programar. Queres desenvolver aplicações móveis? Queres ir para Web development? Deep leaerning? Machine learning? Sistemas embebidos? Robótica? Scripting? Há muitas áreas. Acho mesmo que o primeiro passo é escolher uma area.

Para escolher uma área, talvez devesses pesquisar um pouco sobre as linguagens de programação mais usadas em cada área e veres se alguma se enquadra mais numa primeira avaliação mais superficial tua.

Depois disso acho que o rumo estrá mais traçado e poderás então dedicares-te mais objectivamente a uma linguagem da área que escolheste.

No meu caso, eu identifiquei-me bastante com sistemas embebidos porque junta dois mundos que eu gosto. Electrónica e programação.

Depois, já mais numa óptica mais técnica, acho que ler muito, especialmente os manuais "oficiais" de cada linguagem será sempre uma mais valia relativamente a ler sobre as linguagens pela net fora. Há sempre muita coisa que muitas vezes não está bem descrito ou é usado de uma forma redundante ou secundária e isso pode levar a maus entendimentos da linguagem.

Eu farto-me de ouvir "RTFM". lol. É verdade. Quando peço ajuda sobre determinadas dúvidas, acabo por ouvir aquilo, precisamente porque caio na tentação muitas vezes de seguir exemplos que se vêem na net em vez de tentar ler primeiro os docs. No caso de C, o meu livro de referência é o "The C programming Language" de Dennis Ritchie & Brian Kernighan que são só os criadores da Linguagem C baseada na linguagem B, muitas vezes também apelidado de "K&R".

cUMPs

Psy

Edited by PsySc0rpi0n

Kurt Cobain - Grunge misses you

Nissan GT-R - beast killer

Share this post


Link to post
Share on other sites
Vasco

A área que sinceramente neste momento tenho mais interesse seria o web development

Share this post


Link to post
Share on other sites
PsySc0rpi0n
31 minutes ago, Vasco said:

A área que sinceramente neste momento tenho mais interesse seria o web development

Então acho que tens meio caminho andado. Agora é pesquisar sobre as linguagens disponíveis e ver qual te chama mais à atenção e começar a dedicares-te a ela/elas. E C não eve ser o caso. 😛

Edited by PsySc0rpi0n

Kurt Cobain - Grunge misses you

Nissan GT-R - beast killer

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.