Como posso me sentir mais confiante sobre minhas habilidades de programação? [fechadas]

36

A programação não é estranha para mim. Eu comecei a fazer marcação (HTML, agora por favor não ria de mim) quando eu tinha 12 anos e um pouco de BASIC quando eu tinha 13 anos (eu sabia muito sobre Fluxogramas, Pseudocódigos neste momento), mas então fui advertido Biologia no ensino médio e, portanto, perdeu o conhecimento de programação "real" de linguagens como C, Java, etc. Eu peguei CS para o meu UG B.E. (semelhante ao BS, mas muito mais teórico). Eu aprendi C & C ++ (em menor extensão) por conta própria (meu professor era uma dor total e a turma estava cheia de code-jocks (que já haviam aprendido na escola e, portanto, não davam atenção às aulas e não deixavam os mortais inferiores eu poderia prestar atenção à aula também)) e poderia preparar um incrível programa de adição ou multiplicação (que agora até mesmo os jardineiros de jardim de infância agitam com mais delicadeza) e um conhecimento pobre de Java (que até cresceu enferrujado) nos últimos tempos).

O meu principal problema é que sempre me senti inadequado e estrangulado pelas minhas limitadas capacidades de programação e menosprezado pelos code-jocks (acreditem, já me deparei com este site há muito tempo, mas só agora poderia criar coragem para realmente postar uma pergunta) e tem sido às vezes até deprimido com a dita incapacidade. A maioria das pessoas diz que a programação não é necessariamente sobre a linguagem, mas o estado de espírito que a pessoa tem e as técnicas que empregam para resolver problemas / problemas. Eu concordo com tais sentimentos, mas posso algum dia adquirir tal "estado de espírito", e se é que devo abordar "Programação / Codificação", e se há algum conjunto de caminhos e passos que se pode realizar para alcançar o "Zen"? de codificação ". Como eu faço isso? Além disso, não faria mal se algum Santo quisesse orientar essa peça de $ #!

P.S. Eu ficaria eternamente grato a qualquer pessoa que me considere valer o seu tempo e, como um bônus, nomearia meu primeiro software que eu enviei para eles. (Se eu alguma vez conseguir enviar um, por exemplo,)

TL; DR: Nunca realmente aprendi "Programação / Codificação", não consigo resolver problemas mesmo que eu tente. Me ajude!

    
por 6 revs, 3 users 50%Ameen 07.12.2011 / 13:57
fonte

17 respostas

26

Eu diria que a melhor maneira é simplesmente gastar mais tempo com isso (pesquise a regra das 10000 horas). Encontre algo que você quer que seja feito e prepare-se para fazê-lo. Escolha algo que esteja além da sua habilidade atual, mas não tão longe que você não conseguirá terminar em um período de tempo razoável. Se você realmente gostar disso, você se verá repetindo isso até que seja realmente bom nisso. Se você não gosta, então talvez não seja a coisa certa para você. Tente se desafiar, você provavelmente vai gostar disso.

    
por 09.04.2011 / 03:31
fonte
16

Envie coisas . É a única maneira. Faça as coisas. No trabalho, seus próprios projetos, projetos de código aberto. Comece a enviar as coisas. Eles podem ser coisas muito pequenas, como uma correção de bug ou um recurso comercializável mínimo. Apenas comece a enviar itens . Nada é mais satisfatório ou de confiança do que o sucesso.

Edit: Você deve ler Enviá-lo . É ótimo.

Edite novamente: a experiência de fazer algo diferente de envio é apenas uma falha de experiência. Já vi muitos desenvolvedores "sênior" cuja experiência principal não era enviar itens (e encontrar desculpas para não enviá-los). Real artistas são enviados .

    
por 23.04.2011 / 20:38
fonte
11

'problema', 'inadequado', 'estrangulado', 'habilidades X limitadas', 'depreciado', 'deprimido', 'incapacidade' em uma sentença, tudo direcionado para você sugere para mim algumas feridas não curadas da passado ainda te machucando. Se você encontrar maneiras de superá-los, a programação ou qualquer arte / ofício seria muito fácil de dominar. Talvez ler sobre a resiliência de outras pessoas ajudaria aqui. Todo mundo passa por momentos difíceis em suas vidas. Se aqueles feridos / feridas não forem curados, seus sucessos não teriam acontecido. Cure sua ferida primeiro. A programação pode esperar mais tarde.

Quanto a habilidades de programação, como eu aprendo um novo idioma e começo a pensar como os outros que já programam nesse idioma é, em primeiro lugar, ler tudo o que eu puder colocar em minhas mãos que esteja relacionado a esse idioma. Então, quando eu tiver lido o suficiente, comece a escrever pequenos programas.

    
por 09.04.2011 / 03:57
fonte
9

Algumas coisas que você precisa para começar:

Perseverança: Tornar-se um bom programador leva tempo a prática. Você precisará escrever um monte de código ruim antes de escrever qualquer código bom - um lote de código incorreto. Felizmente, você tem recursos como este site para ajudá-lo. Contanto que você continue comprometido em aprender a programar, você poderá montar jogos e utilitários simples em pouco tempo!

Metas: Defina algumas metas para você mesmo. Digamos aprender a usar o STL em C ++ em duas semanas. Veja como você faz bem. Se você demorar mais, acompanhe por quanto tempo, isso ajudará você a fazer melhor no futuro. Eu aprendi esse truque com um colega de trabalho; ele poderia estimar, para o dia, quanto tempo quase qualquer tarefa iria levá-lo. Fazer isso me ajudou a manter o controle sobre quanto tempo eu gasto em projetos pessoais e me ajuda a evitar que eles fiquem fora de controle (gerenciamento de escopo, como eles chamam).

Curiosidade: você precisa estar interessado e engajado. Se você não é o tipo de pessoa que não aborda problemas com o desejo de encontrar a solução, iniciar a programação será difícil no início, e a depuração pode ser um pesadelo. Mas não precisa ser assim. Se você tiver um problema, pergunte em sites como este, google seu erro. Se você não consegue descobrir como implementar algo, pergunte! Há sempre pessoas que estão dispostas a ajudar!

Confiança: Seja confiante no que você está querendo fazer, e confiante o suficiente para fazer perguntas. Se alguém lhe mostrar outra maneira de fazer algo, não fique na defensiva, nem se engane pensando que errou; pense nisso como você está sendo ensinado uma abordagem diferente para resolver o seu problema!

Acima de tudo, mantenha uma perspectiva positiva, leia muitos tutoriais e faça muitas perguntas, e você será um programador feliz! Outro conselho que tenho a dar é escolher um idioma, um pau com isso até ficar mais confiante. Você tem muito tempo para aprender vários idiomas, mas quando estiver começando, trabalhe com um.

Boa sorte! E lembre-se, isso deve ser divertido! = D

    
por 09.04.2011 / 03:46
fonte
7

Em desenvolvimento, parece que o paradoxo "quanto mais você sabe, mais você sabe que não sabe" é verdade.

Se você for uma pessoa atenciosa e honesta, precisará aceitar esse fato e aprender a lidar com isso.

Confiança, no sentido implícito na pergunta, é algo muito pessoal que realmente não tem nada a ver com um determinado conjunto de habilidades ou metodologia.

Em uma nota mais superficial, o sentimento descrito em link (seção: Você superestima radicalmente a habilidade média da competição por causa da multidão com quem você anda) sempre me ajudou.

Eu sugiro que você aprenda a ser mais confiante no trabalho que fez ao invés de construir confiança em suas habilidades como um todo. A melhor maneira de fazer isso é escrever testes repetitivos para todo o seu código. Isso fará maravilhas em sua psique.

    
por 01.03.2012 / 23:14
fonte
4

WhiteFang34 está totalmente certo. Como biólogo, descobri que a única maneira de aprender programação é começar a fazê-lo. Leia alguns livros, tenha o google e sempre à mão, e "apenas faça". Seus programas serão muito básicos, mal codificados e com bugs no começo, e você ficará cada vez melhor com o tempo. Eu não tenho tempo para fazer aulas de programação, mas eu gasto muito tempo codificando (porque é divertido fazer isso).

Escolha um idioma que permita pensar mais sobre o que você quer fazer e menos sobre como fazer isso. c não é um bom exemplo disso. Tente linguagens de nível superior, como java ou c #, porque elas permitirão que você faça mais, para que você tenha a coragem de tentar cada vez mais.

(Isto é, claro, supondo que você não esteja buscando uma carreira como programador profissional, caso em que eu diria apenas voltar para a escola ...)

Boa sorte e boa codificação

PS: Ah, e você vai precisar de muita preguiça, impaciência e arrogância

link

    
por 09.04.2011 / 03:52
fonte
4

O engraçado é:

programmer's mind isn't that much about computer, programming language,
design-patterns or algorithms

É sobre entender sutilezas do mundo real, interação entre as coisas. Capacidade de pensar em resumo . Capacidade de perceber as coisas e lembrar delas. Isso inevitavelmente leva a uma boa resolução de problemas.

Implementação, o código em si só vem depois disso - depois de você ter sucesso e sucesso resolvido problema dado dentro de sua mente.

    
por 09.04.2011 / 14:34
fonte
4

Confiança não é algo que você deve tentar sentir sobre suas habilidades. A confiança é fraca (provavelmente negativamente) correlacionada com a habilidade real. Você deve estar trabalhando para melhorar seu conjunto de habilidades profissionais (ou de valor), não importa o que você sente sobre seu nível de habilidade atual.

Confiança é algo que outras pessoas, aquelas que você acha que são competentes, devem se sentir sobre suas habilidades depois de trabalhar com você ou ver seu trabalho.

    
por 07.12.2011 / 18:52
fonte
3

É muito simples: estar interessado nela ! Parece que você já está, então encontre algo que você acha que seria legal fazer, e então faça, perguntando o que você precisar, usando os recursos que você puder, para montar o projeto do jeito que você eu quero isso. Enxágue e repita, e você se verá sendo um programador incrível sem nem mesmo ter feito muito esforço, já que foi interessante / divertido ao longo do caminho.

Além disso, encontre um bom equilíbrio entre descobrir coisas e fazer muitas perguntas. No começo, especialmente, é uma grande ajuda ter outros dizendo a você onde você está errado, para estimular você na primeira parte da curva de aprendizado. De lá, tente descobrir as coisas por conta própria, e se você ficar preso depois de um tempo, faça uma pergunta sobre isso. O que costumo fazer é postar uma pergunta no SO e depois procurar a resposta, checando SO ocasionalmente no processo. Às vezes eu encontro a resposta primeiro, às vezes me encontra primeiro.

Não se preocupe tanto com qual tecnologia, embora seja muito divertido fazer gráficos com HTML5 + JavaScript + a tag de tela, já que é muito fácil de configurar, as recompensas são imediatas e você pode compartilhá-las .

    
por 09.04.2011 / 04:06
fonte
3

Aborde a programação com uma atitude mais positiva dos alunos. Ninguém sabe tudo. Em segundo lugar, descubra por que você está interessado em programar, do jeito que você gosta:

  • resolução de problemas
  • aprendendo coisas novas
  • fazendo um computador dobrar a sua vontade
  • outra coisa ...

Depois de saber o que você adora em programação, você pode concentrar seus esforços de aprendizado nessa direção. Eu sou um funileiro / solucionador de problemas. Isso me faz extremamente pragmático. Algoritmos e estruturas de dados, a teoria da ciência da computação em geral, me colocou para dormir.

Meu histórico é semelhante ao seu. Comecei a construir computadores com 10 anos de idade. Fiz um pouco de HTML / C ++ na minha adolescência ... fiquei entediado com isso ... parei por alguns anos. Eu nunca parei de brincar com o computador.

Agora, estou amando a programação. Então, o que mudou? Eu encontrei minha motivação. Comecei a trabalhar onde recebi uma infinidade de problemas para resolver. Encontrar soluções inteligentes e simples para problemas complexos realmente acende meu fogo.

Por fim, não se preocupe com o código de outras pessoas ou se é "certo" ou não. É certo se ele faz o que você quer fazer. Depois de começar a trabalhar em uma equipe, os padrões se tornam importantes. Isso se deve muito ao fato de que outras pessoas precisarão ser capazes de interpretar e modificar seu trabalho. Padrões de design não são algo que um novo programador deve se preocupar.

    
por 09.04.2011 / 04:21
fonte
3

Sempre há inércia para superar quando se aprende coisas novas. Os curiosos programadores que conheço lutam para encontrar a motivação para continuar aprendendo novas linguagens e paradigmas. Eles dirão: "Eu preciso de um projeto para experimentar o X". a fim de aprender X. Alguns realmente encontrarão / inventarão esse projeto.

Esteja ciente de que uma carreira em programação será um longo processo de frustração, estudo, experimento e inclinação contra moinhos de vento. Até que os IAs dominem tudo.

Se você ainda está fazendo ciência real, então você deve ser capaz de imaginar um projeto / necessidade de algum tipo. Por exemplo, combinando dados de várias fontes dentro ou fora da Internet. Isso pode inspirar você está aprendendo javascript ou R ou até mesmo o Excel / VBA. Se você puder conectar alguns pontos para os outros em seu campo, você será reconhecido, e voila, você será um programador.

Use, mas tenha cuidado com os mentores. Autoridade pergunta.

E, a propósito, "zen coding" é um oxímoro.

    
por 23.04.2011 / 18:13
fonte
3

Você nunca se sentirá confiante sobre suas habilidades de programação.

A maneira como você descreve suas habilidades, aponta para uma mentalidade em que você nunca ficará satisfeito com suas habilidades. Você dominou o C ++? Espere aí é Java! Você dominou o Java? Espere até que haja Programação Paralela. Você dominou a programação paralela em C ++ e Java? Espere ai é SOA! Há OOD! E MVC! SÓLIDO! Programação Funcional! Programação da Web! Programação em nuvem! Programação Móvel!

O ponto não é se sentir deprimido por causa disso. Você precisa empurrar alguns botões em sua cabeça: sua dúvida sobre suas habilidades é puro combustível. Você provavelmente nunca alcançará um nível satisfatório de habilidades de programação. Enquanto isso for o caso, você seguirá em frente. A parte difícil é perceber e fazer algo contra isso, embora nunca haja um objetivo. Quanto mais tempo você suportar, maior será o seu nível de habilidade.

    
por 07.12.2011 / 17:42
fonte
3

Eu costumava me sentir da mesma maneira, e foram os sites do Stack Exchange que me ajudaram a confiar.

Comecei a usar o StackOverflow para encontrar respostas para as minhas perguntas e um dia vi uma para a qual sabia a resposta. Eu postei a resposta, consegui alguns votos e um comentário dizendo que era uma boa resposta, e isso me encorajou a procurar outras perguntas que eu pudesse responder.

Ele logo se tornou um vício para mim, encontrando perguntas não respondidas que eu poderia resolver, e com o passar do tempo eu comecei a ganhar confiança em minhas respostas. Eu não precisava mais dizer "Acho que isso é porque ..." ou "Isso deveria causar ...", mas poderia dizer com certa confiança que "Isto é porque ..." ou "Isso faz com que ..."

Eu gosto de quebra-cabeças, e para mim as perguntas eram como enigmas de mini-programação, com o benefício adicional de obter algum feedback positivo se eu acertasse na resposta. Se recebi uma resposta errada, acabei de excluí-la e aprendi com as soluções de outras pessoas sobre o mesmo problema.

Então, minha recomendação seria continuar em SO e procurar as perguntas em qualquer tag que você estivesse interessado, e procurar por algumas que você acha que pode encontrar respostas. Não há nada como pessoas dizendo que suas respostas de programação são úteis / boas para lhe dar confiança em sua capacidade de programação:)

    
por 07.12.2011 / 20:05
fonte
3

Seu cérebro não gosta de trabalhar muito. Dada a escolha, prefere tomar o caminho mais fácil. É por isso que é fácil desistir das coisas quando você tenta abordar algo muito ambicioso - muito para aprender, muitos detalhes complicados para acertar, muita barba de iaque.

Existem várias coisas que você pode fazer para combater isso. Primeiro, é energia. Tente praticar quando estiver bem descansado e bem alimentado, ou seu cérebro literalmente não terá combustível suficiente para pensamentos abstratos complexos. O segundo truque é interesse ou importância. Se você puder convencer seu cérebro de que saber o maven é vital para escapar do tigre que o persegue, você aprenderá e reterá mais do que quando seu cérebro pensa que é uma tarefa secundária sem sentido no caminho para o que você realmente quer. Um terceiro fator importante é alongar sem exagerar. Algum esforço lhe dará aquele zumbido de realização, e ajudará a formar novos caminhos mentais, sem ser inatingível.

Há também algo a ser dito para a prática repetida. Você quer variação suficiente para ser nova, mas com similaridade suficiente para exercer as mesmas ações e ingênuí-las.

Um outro ponto é que você deve tentar arregaçar as mangas e sujar as mãos. É fácil gastar muito tempo pensando em abordagens alternativas ou na solução ideal, na medida em que você nunca inicia. Este é um exemplo do seu cérebro tentando tomar o caminho mais fácil. Tente reconhecer quando isso está acontecendo com você e evite-o tentando começar. Até mesmo um teste ou experimento é bom. Isso também tem o benefício de fazer com que seu cérebro queira encerrar a tarefa ou encontrar a melhor solução.

    
por 08.12.2011 / 01:35
fonte
2

Três coisas a considerar: (ou não, claro.)

  1. Pratique. E se o fracasso não significasse nada mais do que uma indicação que você está praticando? Se você desistiu de aprender a andar na primeira vez que caiu, você ainda estaria rastejando.
  2. Jogue com o que você está fazendo. O jogo é simplesmente tentar algo e perceber o que acontece. Desista de julgar bons / maus resultados, apenas jogue e veja o que acontece. Pare de se apegar a um determinado resultado, apenas tente algo e veja o que acontece.
  3. E se você não for o único programador do mundo que já se sentiu assim?
por 02.03.2012 / 15:52
fonte
2

Há muitos bons comentários sobre a prática aqui, isso realmente faz toda a diferença.

Você deve se preocupar menos com "code jocks" e seguir seus conselhos ou comentários sobre o que eles são. Se eles são difíceis de lidar em um segmento, eles provavelmente são difíceis de lidar na vida real também; e realmente, quem tem tempo para se preocupar com sua inépcia social?

O resultado final é que existem milhares de maneiras de abordar as tarefas de programação. Muitas coisas se resumem a preferências pessoais. Eu, por exemplo, odeio ler código com operadores tenentários. Outros, ame-os. Eu acho que eles estão certos ou errados? .. na verdade, nenhum dos dois. É uma preferência pessoal, apesar de muitos debates acalorados sobre o assunto.

Se alguém censurar seu código porque você usou 25 linhas em vez de 20, eu tenderia a ignorá-las, a menos que elas encontrassem uma falha real na lógica. Às vezes, no mundo real, temos que simplesmente fazer as coisas (e quem realmente quer ouvir alguém no peito falando sobre o quão complicado ... err, elegante eles conseguiram fazer um pedaço de código que deveria ter sido feito em 10 minutos) . Você pode aprender algo a partir de debates filosóficos intermináveis sobre até que ponto abstrair as coisas? Claro ... mas há retornos decrépitos em ser sugado em constante 100% de elegância. Não é realista o tempo todo, tanto quanto gostaríamos de fingir que é. Alguns dos meus códigos menos elegantes que eu estaria envergonhado de compartilhar com alguém (que eu escrevi no começo da minha carreira) salvaram as pessoas semanas após semanas, usadas desde a sua criação há mais de uma década e teriam que ser retirado dos dedos mortos frios dos usuários (e também funciona, nunca quebrou assim nunca foi dado tempo para voltar e "limpar", que é sempre a história).

Existe um ótimo post no blog de Joel Spolsky chamado Duct Tape Programmer. É uma ótima leitura e IMO coloca alguns de seus medos em perspectiva.

link

Eu não estou dizendo escrever código porcaria e ignorar as melhores práticas, mas ter programadores ranty com um grão de sal.

    
por 05.03.2012 / 09:37
fonte
1

Pergunte-se por que você realmente sente falta de confiança. Eu acho que é porque você se importa com o que seus colegas pensam, e isso é completamente compreensível. Mas para ser verdadeiramente zen sobre isso, você precisa limpar esses pensamentos e só se comparar a si mesmo ao longo do tempo. Seja guiado pelo seu interesse, aprenda e trabalhe duro, e você se tornará um bom programador sem todo o conhecimento psicológico.

Não é realmente a confiança que você precisa, é menos ruído em seu caminho de progresso.

    
por 02.03.2012 / 22:54
fonte