ti-enxame.com

Estou me formando em Ciência da Computação, mas não sei como programar

Estou me formando em Ciência da Computação, mas vejo sites como o Stack Overflow e mecanismos de busca como o Google, e não sei onde começaria a escrever algo assim. Durante um verão, tive a oportunidade de trabalhar como desenvolvedor de iPhone, mas senti como se estivesse colando bibliotecas que outras pessoas haviam escrito com pouca compreensão da mecânica que acontecia sob o capô.

Estou tentando melhorar meu conhecimento estudando algoritmos, mas é um processo longo e doloroso. Acho os algoritmos difíceis e, na velocidade em que estou aprendendo, uma década se passará antes que eu domine o material do livro. Dada a minha situação atual, passei um mês procurando trabalho, mas minhas habilidades (C, Python, Objective-C) são relativamente rasas e não são tão desejáveis ​​no mercado local, onde C #, Java e desenvolvimento web são muito mais altos em demanda. Isso não quer dizer que C e Python não existam, mas tendem a exigir mais de 3 anos de experiência que eu não tenho. Meu GPA está OK (3.0), mas não é alto o suficiente para ser aplicado a grandes empresas como IBM ou retornar para estudos de pós-graduação.

Basicamente, estou me graduando em Ciência da Computação, mas não sinto que aprendi a programar. Eu pensei que ingressar em uma empresa e programar em tempo integral me daria a chance de desenvolver minhas habilidades e aprender com os mais experientes que eu, mas estou lutando para encontrar trabalho e estou começando a ficar realmente frustrado.

Vou ampliar minha rede e olhar além da cidade em que cresci, mas o que outras pessoas em situação semelhante tentaram fazer? Eu trabalhei duro, mas não tenho confiança para sair por conta própria e escrever meu próprio aplicativo. (Ou seja, torne-se um desenvolvedor independente no mercado de aplicativos para iPhone.) Se nada acontecer, terei que considerar a atualização e o aprendizado de habilidades mais populares ou experimentar algo marginalmente relacionado, como a TI, mas, considerando todo o esforço que pus como fugir.

1050
wp123

Uau ... muitos comentários interessantes são bons.

Aprendi sozinho a programação, o que não significa que você precise. Meu filho está cursando a faculdade e está prestes a terminar. Encontrar um emprego é sempre difícil quando você se forma.

Quando você fez os programas simples durante as aulas, gostou deles? Se você o fez primeiro, talvez esteja no lugar certo; se não gostar de digitar documentos, não se preocupe em fazer requisitos.

Parece que você quer aprender mais, já que não gostou da experiência do iPhone de apenas colar coisas. Esse é um bom sinal, não é um mau sinal.

Em seguida, encontrar um emprego depende se você estiver em uma cidade grande ou morando no país.

Aprenda HTML criando seu próprio pequeno site. Escolha um idioma da Web ... (PHP, ColdFusion, DotNet) Crie alguns sites simples.

Aceite QUALQUER trabalho de desenvolvimento web ou de programação que ofereça um emprego. Não se preocupe com $$ no início. Seu objetivo está na programação do trabalho. É difícil programar em casa em seu próprio projeto. No entanto, no trabalho, quando você é obrigado a fazer algo, tende a trabalhar muito mais e, se achar que não é divertido, escolha uma carreira de TI diferente. Isso acontece.

Aceite QUALQUER emprego ... você aprenderá ... se quiser, superará.

Nunca senti que sabia programar, isso é um sinal muito bom. Eu odeio trabalhar com aqueles que sentem que sabem tudo o que tendem a codificar muito mal e não documentam nada do que fazem.

Espero que meus comentários o ajudem com todos esses outros ótimos comentários.

1
Nathan Stanford

Você começa sua carreira de desenvolvimento de software com uma base em ciência da computação e um diploma para mostrar isso ?! Que incrível!

Embora você possa estar preocupado em encontrar um emprego e não ter as habilidades necessárias para engenharia de software com um diploma de CS, imagine estar no mesmo lugar sem um CS grau. É exatamente onde eu estava há um ano atrás.

Cortei os dentes na programação criando macros monolíticas no Excel e Access usando VBA e consegui pegar um pouco de SQL ao longo do caminho. Há cerca de um ano, decidi que queria iniciar uma carreira em desenvolvimento de software, mas não conseguia imaginar como conseguiria um emprego sem um diploma em CS (tenho um bacharelado em filosofia, de todas as coisas) e com zero "profissional". "experiência de desenvolvimento. Quem em sã consciência me contrataria?

Decidi me concentrar em conseguir um emprego cujo foco seria escrever aplicativos de negócios, por isso decidi aprimorar minhas habilidades em .NET e C #. Antes de 9 meses atrás, eu nunca havia escrito uma única linha de código .NET. Mas eu mergulhei; e eu entrei na minha cabeça; Eu lutei; Eu fui a tantos grupos de usuários quanto pude encontrar; Eu leio blogs sobre codificação; Eu me envergonhei (e ainda o faço) no Stack Overflow; Ouvi toneladas de podcasts apenas para me familiarizar com o que está por aí. Ainda assim, eu me senti atrasado, mas eu finalmente havia superado meu medo de não poder fazer algo.

Há 2,5 meses, consegui meu primeiro emprego como desenvolvedor profissional ( escrevi sobre como encontrei o emprego no meu blog , caso você esteja interessado). Agora estou codificando em VB.NET, VB6 e javascript e continuo aprendendo bastante sobre programação todos os dias. Mas se eu conseguir encontrar um emprego sem um diploma em CS , estou confiante de que você pode desenvolver suas habilidades e encontrar uma também.

1
Ben McCormack

Não sei se isso realmente será lido, mas sinto a necessidade de soltá-lo.

A faculdade não me ensinou muito. Algumas estruturas básicas de programação e dados. Nada alucinante. No entanto, ele me mostrou como eu aprendo melhor. Eu aprendo fazendo o que está alinhado com muitas das postagens aqui. Também aprendi que gosto de criar coisas via código, da mesma forma que um trabalhador da madeira gosta de criar coisas de madeira. Então, entre essas duas coisas, dediquei tempo para fazer algo para aprender.

Um empregador sabe o que está recebendo de um graduado da faculdade. Eles sabem que o graduado não sabe muito. No entanto, alguns empregadores adoram isso porque, então, conseguem moldar a nova pessoa de acordo com sua cultura e mentalidade. Eles vão te ensinar as cordas para você rolar. Apenas esteja pronto para aprender. Isso tem seus altos e baixos.

Não se preocupe. O setor de TI foi um dos menos afetados pela recente desaceleração. Existem empregos. A empresa em que trabalho contratou apenas um grupo de recém-formados. O truque é encontrá-los.

Boa sorte.

1
Tony

Você acabou de expressar o que sinto por mim mesmo. Estou quase me formando em Ciência da Computação e, como muitos de nós, aprendemos algoritmos teóricos e desenvolvemos muito poucos projetos interessantes. Mas como Keith Nicholas disse

Acho que as pessoas que tendem a se sair melhor são as que no início de suas carreiras se esforçam para desenvolver suas habilidades em seu próprio tempo. Geralmente porque eles são genuinamente apaixonados pelo desenvolvimento de software.

Eu perdi esse ponto importante e acabei de fazer o que eles me pediram na Universidade. Será o primeiro passo para o qual vou me mudar.

No momento em que tento fazer algo mais, sinto-me novamente, assim como você disse:

Eu senti como se estivesse colando bibliotecas que outras pessoas haviam escrito com pouco entendimento da mecânica.

Sou grato por sua postagem e por muitas respostas, conselhos e links que eles escreveram para "nós".

1
soneangel

Marque http://greatmaps.codeplex.com/ . No começo, eu não tinha ideia de como fazê-lo;} Então você faz isso simplesmente fazendo.

PS. Não tenho diploma 'oficial', perda de tempo.

1
radioman

+1. O interesse é muito importante e a codificação às vezes precisa de mais paciência!

1
Fisher

Lembre-se de duas coisas:

  1. Você não aprende como programar (aplicativos) em um programa de Ciência da Computação. Os aplicativos da vida real não são problemas de lição de casa de uma ou duas semanas, do tamanho da picada. É preciso muito planejamento e coordenação para que um aplicativo da vida real esteja em funcionamento. É uma mentalidade diferente da que você está acostumado, mas confie em mim que você chegará lá.

  2. Talvez as coisas estejam diferentes agora; mas quando fui para a universidade, apenas dois ou três de meus professores realmente trabalhavam como programadores (graduação e pós-graduação). Então, talvez você se sinta despreparado para a programação de aplicativos porque foi ensinado a ser pessoas que nunca trabalharam em aplicativos reais. Isso não quer dizer que o que você aprendeu seja inútil ... há muito mais na criação de aplicativos do que na programação. Significa apenas que você ainda tem muito mais a aprender. E tudo bem, você está entrando em um campo em que nunca para de aprender.

1
Giovanni Galbo

Continue aprendendo e você ganhará sua confiança :)

1
joven

Estarei exatamente no mesmo barco, meu amigo, em cerca de um ano (se formar aproximadamente em 2011/2012). Enquanto nossa escola ensina desenvolvimento em Java, passo muito do meu tempo livre lendo em outras linguagens como ASP.NET, PHP, Ruby, TDD, MVC, DDD etc ... porque eu simplesmente amo isso. Há algo sobre a capacidade de pegar código e transformá-lo em algo que pode potencialmente ajudar milhões de usuários, enquanto você ganha dinheiro. É como uma arte se você me perguntar.

Você só pode melhorar com a prática. A qualquer momento, tenho projetos da web, projetos winform, WPF e mais projetos acontecendo de uma só vez, para não ficar entediado. Esses projetos nem precisam ser comercializados (mas podem ser). Eles são principalmente para me ajudar a aprender diferentes tecnologias.

Boa sorte para você!

1
Jack

Eu sou outro que recomendará ficar preso em um projeto pessoal ou dois.

Pessoalmente, não tenho nenhuma qualificação oficial de programação, além de alguns cursos de graduação para estudantes que não são da área de computação - minha área de especialização é realmente em engenharia mecânica.

A razão pela qual mencionei isso é porque atualmente estou trabalhando como engenheiro de software para uma grande organização de pesquisa, onde a programação é minha única responsabilidade. Quão? Porque eu adquiri uma quantidade fenomenal de experiência simplesmente programando como um hobby. Não posso enfatizar o suficiente o quanto o trabalho no meu tempo livre me ajudou a conseguir meu emprego.

O que estou tentando entender é que o que você aprenderá a fazer a programação real é uma das experiências mais valiosas que você pode obter - e não importa se faz parte de um curso oficial ou simplesmente brincando com seu Tempo.

Isso também não quer dizer que o que você aprendeu como parte de seu curso não seja importante - ele forma uma estrutura valiosa para você aproveitar sua experiência. Eu certamente sei que eu estaria muito melhor com um histórico formal de ciência da computação - perdi a conta de quantas vezes fiquei preso em algo simples ou perdi a noção do que meu chefe está falando, simplesmente porque tudo isso estava faltando.

Eu acho que você vai se sair bem no mundo "real". Você ganhará experiência simplesmente trabalhando, e qualquer empregador decente sabe disso e não espera mais de você do que o seu melhor esforço e o compromisso de aprender com a sua experiência. Muitos empregadores (inclusive os meus) cuidam especificamente de seus recrutas graduados, usando mentores e programas de treinamento para aprimorar essa experiência. E se você acha que poderia usar mais experiência, recomendo vivamente que faça alguma coisa no seu tempo livre.

Termino dizendo que nunca paramos de aprender. Você pode estar apenas começando sua carreira, mas continuará aprendendo e ganhando experiência através de seu trabalho, seu empregador, seus mentores e por conta própria. Não tenha medo de não ter aprendido tudo ainda - ainda há muito tempo para adquirir experiência.

Tudo de bom com sua futura carreira! Espero encontrar você nadando SO com perguntas relacionadas ao trabalho em breve!

1
Mac

Apenas uma breve nota, algo que me falta nas outras respostas sábias que você já recebeu. Se você seguir os conselhos úteis "faça alguma coisa", sugiro que você facilite as coisas. Eu gosto de usar a piada "caminhar sobre a água e desenvolver software a partir de uma especificação é fácil se ambos estiverem congelados" ...

Então, se você decidir que vai "fazer alguma coisa",

  • decida o que seu programa fará (requisitos)
  • como vai se comportar (funcional)
  • como você vai implementá-lo (técnico)

e anote!

Se você mudar os papéis durante a peça, não se esqueça de verificar as consequências em cascata.

Divirta-se e esteja preparado para ser (muito) paciente.

1
mariotomo

Primeiro, se você sente que não está pronto para ser um programador profissional, esse é o sentimento certo. Foi assim que me senti quando estava na metade do meu diploma de CS e, se não tivesse trabalhado na universidade, teria atravessado o palco sem qualificação para codificar meu caminho para fora de um saco de papel.

Mas você aprimorará suas habilidades com bastante rapidez e até um pouco de previsibilidade ao conseguir o primeiro emprego e começar a aprender com os outros como essa coisa de "engenharia de software" é feita. A chave do sucesso é entender que você aprenderá com outras pessoas, incluindo outras com as quais você pode discordar ou não se dar tão bem. No auge da minha carreira em CS (desde então, mudei para outras coisas), liderei uma equipe de 12 desenvolvedores para um grande fornecedor de software. Todos os novos contratados pensaram que eram realmente inteligentes. Os que ouviram avançaram bastante e os que continuaram pensando que eram realmente inteligentes não.

Mas chega disso. Deixe-me compartilhar com você minhas observações após 31 anos no negócio de software.

Quando comecei, joguei o código. E isso é bastante normal - a maioria das suas tarefas na universidade provavelmente era muito pequena e é o que muitas pessoas fazem com pequenos projetos de codificação. Eles ficam sentados no computador e continuam digitando até que o problema seja resolvido. Não há nada de errado com isso e se você desenvolver algumas boas habilidades de prototipagem rápida, a capacidade de estilingar o código será recompensada no futuro.

Após cerca de cinco anos, tive um trabalho bastante grande - alguns deles foram de código aberto (costumávamos chamar de "domínio público") - publicando um aviso no código-fonte que diz "este software é de domínio público "), parte era" Sem uso comercial "ou" Você pode fazer qualquer coisa além de vendê-lo ". Não havia GPL. Mas o que aprendi depois de cinco anos é que meu código fedia porque não conseguia entender o que havia feito há mais de alguns anos. E com isso você aprenderá que os comentários são seus amigos - o código que escrevi no final dos anos 80 tinha uma boa relação código-comentário. Código do início dos anos 80 - nem tanto. Mas isso lhe dá uma idéia do problema - um diploma de quatro anos não é tempo suficiente para aprender o que você está fazendo de errado.

Depois de dez anos, comecei a precisar reutilizar meu próprio código de maneiras que nunca imaginei. Parte do código funcionou, parte não funcionou e, nos anos seguintes, me cansei de refazer o código e aprendi a ser um arquiteto de software. Eu tenho código no mundo de código aberto que agora tem 23 anos e parte da estrutura original ainda está lá. É assim que se parece um bom design e uma arquitetura sólida - código antigo que resistiu ao teste do tempo, porque os computadores hoje em dia não se parecem com computadores há 23 anos. Meu telefone é mais um computador do que os PCs que eu tinha há 20 anos. Então, você começará a aprender como realmente projetar software, e isso realmente não é algo que você possa aprender em uma aula de ciências da computação de 14 a 18 semanas, que se reúne 3 horas por semana. Direita? Quando eu era arquiteto, levava meses para projetar o software que seria desenvolvido na próxima versão. Então, comece a procurar padrões - e essa é uma das coisas sobre linguagens orientadas a objetos que as tornam atraentes (se usadas corretamente). Eles fazem você pensar mais. Toda vez que você escrever algo, pense no futuro.

Dos 15 aos 25 anos, lidero uma equipe de desenvolvedores. Alguns eram novos contratados, outros eram experientes e eu tive que lidar com o que tinha, porque não era um gerente capaz de contratar apenas as pessoas que eu queria. Em algum momento, é com isso que você precisará aprender a lidar - pessoas diferentes em sua equipe terão habilidades e habilidades diferentes. Eu tinha caras com boas habilidades de rede, caras com boas habilidades de multi-threading e caras que eram apenas desenvolvedores genéricos. As pessoas que avançaram em sua carreira foram as que se deram bem com outras pessoas e foram capazes de aprender com elas. Quando você conseguir esse primeiro emprego, encontre um mentor. Não escolha o mais inteligente ou o que quer que seja, encontre alguém que seja mais velho que você, para que você possa entender pelo menos o que está sendo ensinado. Mas faça o que fizer, aprenda com os outros ao seu redor.

Nos últimos anos, cansei de estar no negócio de software como um negócio. Ainda desenvolvo software (meu aplicativo atual tem cerca de 100 KB de Java - todos escritos por mim mesmo), mas estou trabalhando principalmente fora da indústria de software. É um ótimo campo de carreira e 30 anos foi um passeio agradável.

1
Julie in Austin

Uma pergunta fantástica. Até certo ponto, sua pergunta me fez pensar como eu estava pensando quando me formei na faculdade.

Como você disse que conhece C e Python, minha sugestão será começar a participar de qualquer projeto de código aberto que use essas linguagens. Vá para sourceforge.net ou code.google.com e pesquise projetos que usam C ou Python. Alguns projetos também terão mentores. A beleza dos projetos de código aberto é que você pode começar a contribuir em qualquer parte que se sinta confortável e crescer a partir daí. À medida que você se sentir mais confortável com o código, poderá realizar mais tarefas.

Boa sorte com seus empreendimentos. Tenho certeza de que você encontrará alguns projetos agradáveis ​​que podem precisar de sua ajuda. A melhor parte é que você obtém sua experiência e pode mostrá-la como evidência em sua busca de emprego.

1
yasouser

A programação é uma ferramenta. A maioria dos cursos de CS ensina como programar. É como aprender a usar um martelo sem aprender a construir nada. Se você tem pouco conhecimento sobre o domínio de um problema, será difícil escrever um programa para resolvê-lo. O verdadeiro valor que você fornecerá estará na solução de problemas, não sendo um programador.

Depois que consegui um emprego na faculdade, comprei muitos livros relacionados ao espaço problemático em que a empresa trabalhava. Agora sou considerado um "especialista" em uma área não relacionada ao meu diploma em ciência da computação.

1
dwayne963

Eu acho que você deve continuar se esforçando. Todas as pessoas de sucesso passaram por esse processo, quero dizer o que você está sentindo agora, mas os esforços persistentes definitivamente trazem a beleza da mente. Concentre-se em um problema específico de cada vez, procure a solução com o planejamento para utilizar seu tempo com eficiência.

1
Subodh

Eu concordo com timothyawiseman. Obter certificação!

Eu recomendo [texto do link] [1]. As habilidades na Internet são absolutamente necessárias, e o exame do Foundations testa você sobre os fundamentos. Os exames Javascript e Perl receberão seu certificado profissional.

Além disso, baixe as edições expressas gratuitas para desenvolvedores da Web e sql server da Microsoft e crie sites. Pratique e pratique, em seguida, obtenha os livros didáticos de MS e faça os exames 70-536 e 70-562 para obter o certificado MCTS (MS Certified Technical Specialist).

Boa sorte.

[1]: http://ciwcertified.com/certifications/program.asp CIW

1
Hal Noyes

Primeiro, acho que todos sentimos isso quando se formar na faculdade ou procurar emprego. A experiência não acontece da noite para o dia.

Mas o que pode ajudá-lo a ganhar experiência rapidamente é ser naturalmente curioso e ser um iniciante voluntário. Você aprenderá muito rapidamente quando tiver tempo para aprender por conta própria e encontrar hobbies pessoais que aprimoram suas habilidades. Sempre esteja disposto a aprender e você percorrerá um longo caminho.

Se você está atualmente procurando emprego, recomendo a criação de um site pessoal com um portfólio. Carregue projetos que você criou com base no que aprendeu. Torná-lo realmente legal. Eu também recomendo o Indeed.com em sua pesquisa.

1
MattB

Passei um mês procurando trabalho, mas minhas habilidades (C, Python, Objective-C) são relativamente rasas e não são tão desejáveis ​​no mercado local, onde C #, Java e desenvolvimento web são muito mais procurados.

Suas habilidades podem ser mais valiosas do que você pensa. Olhe para o framework web Django. É uma estrutura para o desenvolvimento da Web criada em torno do CPython. É bastante fácil de usar e é extraordinariamente poderoso e é usado por muitas empresas de grande nome para desenvolvimento rápido.

1
SC Ghost

Se você deseja desenvolver lógica e raciocínio para programação, aprenda programação usando linguagens como C.

Leia e compreenda os exemplos do livro C de Kernighan & Ritchie. Pesquise no google, você encontrará o ebook.

quando estiver confortável para pensar em soluções para problemas (pequenos problemas de programação), tente aprender ferramentas, estruturas ou qualquer outra coisa diferente.

Você também pode tentar se preparar para o exame SCJP e ler todos os tópicos. Experimente todos os pequenos programas que encontrar e experimente com eles. Se você ler o site da Sun sobre os recursos do SCJP, encontrará muitos programas pequenos, tente entendê-los, escreva por conta própria. Então, quando estiver confortável, mova-se para balançar, JSP, Servlet, Struts ou Spring ou qualquer outra coisa. Você precisa de uma base muito boa primeiro.

Você pode consultar os problemas de programação relacionados ao concurso de programação ACM e tentar resolvê-los. se não puder, faça o check-out das soluções por outras pessoas. Dessa forma, você construirá uma lógica e um pensamento fortes.

Quando você estiver confortável, tente memorizar a biblioteca e praticar sobre isso.

http://justetc.net/knowledge/index.php?table=Articles&categoryID=32&category=Java

Tente criar um aplicativo. Pense em um pequeno problema pessoal ou comercial e tente escrever um aplicativo completo para isso.

Pode ser que você possa investir em um programa de CS melhor

1
Sayed

Só porque você se formou em ciência da computação não significa que você deve programar para o resto de sua carreira. Você já teve alguma aula de análise e design de sistemas?

1
Dan

Quando entrevistei programadores juniores (ou seja, recém-formados), sempre pergunto a eles em quais projetos eles trabalharam, principalmente em turmas envolvendo equipes de várias pessoas. Afinal, esse é o tipo de trabalho que eles normalmente fazem em um trabalho real.

Se uma pessoa nunca trabalhou com outros programadores em um projeto, isso poderia exigir uma curva de aprendizado acentuada.

A maneira de aprender a programar é a maneira de aprender praticamente qualquer coisa: pratique. Muito.

1
David R Tribble

Lembre-se disso, a mil milhas começa desde o primeiro passo. Tudo começa desde o início do seu curso superior e apenas uma ponte que leva você ao primeiro passo da vida. Então você está apenas começando, coloque todas as ações em todos os planos que tiver, um dia estará no lugar que deseja. Boa sorte meu amigo.

1
Vicheanak

Tive o mesmo sentimento quando me formei em ciência da computação, mas continuei lendo livros (hs, iniciados no Visual Basic 6) e depois no Oracle e Java. Quanto mais você lê, mais você conhece para tentar. Depois de quatro meses lendo e praticando, resolvi os alogritmos com os quais eu era tão pobre na graduação.

1
pakhtana

Ei!
Sua pergunta é muito boa e é o cenário da vida real para muitos alunos recém-examinados. Eu também acabei de me formar e, durante todo o meu período de estudos, senti que a escola me dava pouco conhecimento valioso e muita informação inútil.

O problema da faculdade é que ela não tem tempo para fornecer um conhecimento muito profundo. Na maioria dos cursos, você só tem tempo para se concentrar nas fundações de uma área específica dentro da área (sim, é fofo). A abordagem é essa ou apenas tente fornecer aos alunos um conhecimento geral sobre a área (é claro que isso é diferente dependendo do grau de dificuldade do curso).

Eu tive a sorte de conseguir um emprego de desenvolvimento logo após a formatura. Muitos acharam isso injusto, porque eu não sou um programador incrível. Conheço o básico e conheço uma área um pouco mais profunda. Em geral, acho que sou bom e que as pessoas deveriam ser é COMO obter o conhecimento. Segundo mim, este é o conhecimento mais importante que a escola me deu. Como muitos dizem, você não pode saber tudo. O que importa é que, no final, você sabe o que deve saber. Portanto, saber obter o conhecimento necessário é muito mais importante do que conhecê-lo desde o início.

Uma coisa que não deve ser subestimada é o valor das habilidades sociais. Você pode ser um bom programador, mas com dificuldades sociais. Você não sabe como se promover ou trabalhar em conjunto com as pessoas. Especificamente a última coisa, trabalhe junto com as pessoas. Em um projeto, você é (na maioria das vezes) forçado a trabalhar com pessoas. Se você tiver grandes problemas com isso e realmente conseguiu o emprego, provavelmente terá dificuldades em permanecer lá.

Assunto muito interessante!

1
user373455

Atire para a lua e você pousará entre as estrelas. Não hesite em se candidatar a grandes empresas, você nunca sabe o que elas estão procurando e acredito que, quando você se forma, realmente não sabe muito sobre nada, você ganhará a maior parte de sua experiência no trabalho. Basta entrar e com o tempo você será um ótimo programador.

1
Harry

user30997:

Inicie um projeto pessoal. O problema com a escola é que a coisa mais complicada que você fez foi um projeto que levou 15 semanas a um ano e envolveu algumas outras pessoas. O domínio do problema foi bem compreendido (seu professor não deu nenhuma tarefa que não se encaixasse perfeitamente no seu semestre.) Esse não é um luxo que o mundo real oferece.

Se você tiver que fazer algo importante, do início ao fim, pelo qual possa se apaixonar, seu cérebro começará a envolver o processo. Contanto que seja apenas uma carreira e você não a ame, ainda assim sentirá que ainda não conseguiu.

Não sei se posso concordar completamente com você sobre esse assunto. Sei que, pelas minhas próprias experiências pessoais nas aulas de engenharia de software, esse não foi o caso para nós. Nessas aulas, parecia que a expectativa era que nos ensinássemos tudo o que precisássemos saber para nossos projetos, enquanto nossos professores continuassem ensinando diagramas UML, que geralmente acabamos jogando fora quando chegamos à codificação.

Mas acho que sua escola provavelmente era diferente da minha. Eu só queria salientar que os projetos escolares nem sempre são tão fáceis quanto você imagina. Depende apenas dos professores e do seu estilo de ensino.

1
Liars_Paradox

Mas, posso ver por que o OP quer estudar algoritmos. Para os recém-formados em ciência da computação, não estamos apenas competindo entre si, mas também entre aqueles que não cursaram ciência da computação, mas que cursaram programação na faculdade ou são autodidatas. Para nós, nossos pontos fortes não seriam quantas línguas conhecemos ou se conhecemos bem essas línguas. Para o cientista da computação, sua maior força seria sua capacidade geral de resolver problemas. Você sempre pode procurar uma determinada classe ou um determinado método posteriormente, se precisar. Realmente não importa se você se lembra de tudo o que há para saber em um idioma, porque se você não sabe como usá-lo, não fará o trabalho.

Novas linguagens são criadas e as antigas mudam, mas os princípios gerais por trás da programação, ou seja, os princípios por trás da solução de um problema em geral, permanecem os mesmos.

1
Liars_Paradox

Percebi que suas habilidades incluem o Objective-C para iPhone e o desenvolvimento de iPAD é a moda no momento. Compre um Mac ou obtenha uma imagem VM do Mac OS X e comece a construir. Pense em um jogo ou algo que você gostaria de ter no iPhone e considere isso como um projeto de hobby). Um dos desenvolvedores graduados em que trabalho construiu alguns jogos para iPhone e conseguiu o emprego aqui, agora ele é um membro valioso da nossa equipe de desenvolvimento .NET, Java, PHP e Objective-C.

Como todos disseram, não desista, continue se candidatando a todos os empregos.

1
Nickz

A principal coisa a ter em mente é que você foi à escola para se formar, não apenas para ensinar como programar. Na escola, eles ensinam como pensar e como resolver problemas. Ser um ótimo programador depende de você :) e é preciso muita prática.

1
damstr8

Antes de tudo, dê um tapinha nas costas, porque o seu não é um caso singular. Essa percepção ocorre para muitos graduados em CS. No entanto, existem alguns pontos dignos de avaliação:

  1. você olha sites como o Google e pensa em sua implementação
  2. você é honesto

A curiosidade deve ser sua força motriz e, especialmente em um campo que precisa de aprendizado contínuo, a curiosidade pode ser considerada um ativo.

Honestidade deve ser muito útil. Quando você trabalha em um grupo, a honestidade é essencial para o sucesso do grupo.

Chegando ao aprendizado da programação, não tente assimilar todos os detalhes dos algoritmos de cada vez. Parece ser uma tarefa hercúlea. Em vez disso, escolha uma tarefa que você gosta e melhore gradualmente seu código.

Você tem habilidade em duas linguagens agradáveis: C e python. Você pode escolher projetos que envolvam qualquer um, ler o código de projetos de código aberto e tentar modificá-los para seu benefício. É fácil ler a API e combinar bibliotecas para que elas funcionem; mas tente entender os princípios de design por trás da API.

Recentemente, quando assumi um novo projeto, comecei a ler o plano de fundo. Eu tive que salvar URLs importantes em um arquivo para poder encaminhá-las aos meus amigos. Ocorreu-me um botão no meu navegador que, ao ser clicado, acrescentava o URL da guia atual a um arquivo pré-atribuído com um comentário opcional. Não é uma tarefa muito grande; mas será útil para mim e meus amigos. Eu ainda não fiz; mas conversei com um amigo sobre isso e ele fará isso em breve.

1
dknight