O que há com o programador Alexei. De Yandex a Londres. Como os especialistas de TI russos se movem e quanto ganham na Grã-Bretanha. Alice, isso é muito engraçado. Você gosta de doces

A primeira coisa a entender é que o site é diferente de site para site. Se compararmos a construção do local com a construção, existem locais de "mandris" e "cabanas" e existem "arranha-céus" ou grandes " centros comerciais". Quanto mais complexo o site, mais caro pode ser para um amador que pode lidar facilmente com tarefas simples para sites pequenos.

Falaremos sobre os requisitos para um único programador responsável por uma pequena loja online (30-3000 cartões de produtos, 1-10 pedidos por dia). Este especialista deve ser um generalista, ou seja, igualmente familiarizado com o back-end - desenvolvimento no lado do servidor e com o front-end - desenvolvimento no lado do navegador do usuário).

1. Requisitos mínimos

Se uma loja online já possui um site, o currículo do candidato deve conter todas ou quase todas as tecnologias que são utilizadas no site. Você pode verificar a lista com o desenvolvedor.

Se uma empresa vai desenvolver um site do zero, o programador deve saber:

  • uma das linguagens comuns: PHP/Python/Ruby/C#;
  • um dos DBMS: MySQL/PostrgreSQL/MSSQL/Oracle/MongoDB;
  • um dos sistemas de gerenciamento de conteúdo (CMS) mais comuns: Bitrix, UMI, Drupal, ShoppingCart, WordPress;
  • possuir habilidades de administração de servidores Linux e web, por exemplo, um dos Nginx/Apache/IIS ou ter experiência em hospedagem de servidores web em plataformas AWS Cloud, Google Cloud, Azure.

A ausência dessas habilidades não significa que ele seja um amador. Simplesmente não combina com você.

2. Conhecimento por correspondência

Os sinais de um programador fraco podem ser identificados antes mesmo da entrevista de currículo, examinando o portfólio. Se o programador indicou seus trabalhos (sites), então você deve abri-los em Google Chrome, vá para a seção "Mais ferramentas" do menu do navegador, selecione o item "Ferramentas do desenvolvedor" e abra a guia "Console".

Em seguida, faça uma "viagem" pelo site como um visitante regular: abra várias páginas, tente fazer uma pergunta através do formulário retorno ou encha o carrinho de compras. Se aparecerem erros no console, eles são automaticamente destacados em vermelho, isso é um mau sinal. Talvez não seja culpa de um determinado desenvolvedor se ele trabalhou em uma equipe, mas isso não retrata a equipe como um todo.

Não ter um portfólio ou recusar-se a exibi-lo é um sinal claro de um desenvolvedor inexperiente.

3. Nadamos, não sabemos

Naturalmente, a experiência prática é de grande importância. Se na entrevista, em resposta a perguntas sobre acontecimentos anteriores, o candidato “flutua” e não consegue explicar suas próprias ações, você deve ficar atento.

Por exemplo, um programador fala sobre o desenvolvimento de um sistema usando MySQL, mas não consegue nomear tecnologias alternativas e a razão pela qual ele escolheu esta. Ao mesmo tempo, até a opção “Eu apenas a conheço melhor” é adequada como uma resposta “correta”.

Um especialista competente poderá contar em detalhes sobre seus desenvolvimentos e explicar por que usou tecnologias específicas.

Como verificar: faça perguntas ao programador sobre os detalhes de projetos anteriores e pergunte por que o desenvolvimento foi feito da maneira que foi. Se o candidato não responder com clareza, é provável que esteja levando o crédito pelo trabalho da equipe ou de outros colegas. Ao mesmo tempo, o dono do site não precisa entender os meandros da programação, basta fazer perguntas esclarecedoras.

4. Língua de pássaro

Outro ponto importante- a capacidade do candidato de falar em linguagem "humana". bom especialista ser capaz de explicar o seu trabalho em palavras simples. Mas se o candidato falar exclusivamente em termos, será difícil para ele interagir com os colegas e com o dono da empresa.

Como verificar: peça-lhe que fale sobre algum tipo de erro pelo qual foi “voado” pela administração. Por exemplo, o formulário de "feedback" não funcionou no site por 2 semanas. Imagine que este é o seu site.

Especifique qual foi a essência do erro, como ele descobriu, como encontrou a causa e eliminou o erro. Se o candidato falar em "termos obscuros" - peça esclarecimentos. Se você ainda não estiver satisfeito com a explicação, será difícil trabalhar com ela.

5. Código aberto

Muitos especialistas publicam seus próprios desenvolvimentos no GitHub (ou BitBucket). Se um programador tem vários projetos públicos e, mais ainda, eles foram anotados ou copiados (bifurcados) por outros usuários, essa é uma vantagem significativa. Um grande número de cópias indica um alto nível de profissionalismo.

O programador de nível Dan Abramov estará procurando Grande companhia, nível (ele está trabalhando lá atualmente), mas se o seu candidato tiver projetos com notas diferentes de zero e a "área verde" também estiver preenchida - ótimo! Sinta-se à vontade para chamá-lo para uma entrevista.

Como verificar: peça ao candidato que envie um link para a conta no GitHub (BitBucket) e liste os projetos dos quais se orgulha. Preste atenção na "idade da conta", no número de projetos e no número de cópias do código por outros usuários.

6. Bagagem velha

Um especialista competente deve monitorar o surgimento de novas ferramentas e tecnologias. Uma coisa é um programador ser forçado a trabalhar com um site escrito em linguagem obsoleta, a outra é quando ele adota uma abordagem muito conservadora.

Ferramentas modernas podem reduzir significativamente o tempo de desenvolvimento. Aliás, perseguir e introduzir de forma irracional tudo de novo também é ruim.

Como verificar: pergunte quais ferramentas ou tecnologias o candidato aprendeu nos últimos um ou dois anos e como elas o ajudaram em seu trabalho.

7. Preços do teto

Naturalmente, o trabalho de um bom programador não é barato, mas não há pressa em dar desenvolvimento ao especialista mais caro do mercado. Se um candidato anuncia imediatamente o custo de desenvolvimento de todo o site, sem esclarecer os requisitos para isso, isso é no mínimo estranho.

Para tarefas simples como “mudar a cor de um botão” ou “criar um sitemap”, você deve esperar respostas rápidas - “leva 5 minutos” ou “posso fazer isso em 2 horas”, respectivamente.

Além disso, você pode obter estimativas de custo e tempo de execução de vários especialistas e compará-los. Se um programador leva uma hora para completar uma tarefa de cinco minutos, provavelmente ele não é um profissional ou apenas está jogando para ganhar mais tempo.

Como verificar: pergunte ao candidato quanto tempo ele levará para mudar a cor do botão "Comprar" na loja online e faça um mapa do site.

8. Feito à mão

Existe uma piada de que um bom programador é um programador preguiçoso, mas há alguma verdade nisso. Especialistas competentes escrevem códigos de forma a minimizar não apenas os esforços daqueles que trabalham com o programa, mas também os seus próprios. Eles tentam usar o código pronto de outra pessoa (OpenSource) e não há nada de errado nisso.

Se o programador não souber otimizar próprio trabalho, ele gastará muito tempo e dinheiro do empregador no mesmo tipo de tarefas.

Como verificar: esclareça como o programador aborda a criação do código, peça um exemplo. É bom que inicialmente ele esteja procurando uma solução pronta e, se não houver, ele mesmo escreve o código. Você pode, por exemplo, perguntar ao programador como ele irá desenvolver um calendário que pode ser necessário no formulário de pedido para selecionar uma data de entrega. Uma boa resposta é encontrar um componente pronto.

9 gêmeos extras

Código duplicado é um sinal claro de um programador inexperiente.

Tomemos, por exemplo, o formulário "feedback" na página de contato, que deve ser colocado no catálogo e nas fichas de produto. Se um desenvolvedor simplesmente copia parte do código e cola nas páginas necessárias, o profissionalismo do especialista deixa muito a desejar. Porque quando você precisar fazer ajustes no formulário de feedback, na melhor das hipóteses, você terá que fazer o trabalho triplo e, na pior, o programador esquecerá de alterar um dos códigos.

Um especialista experiente escreverá uma função que carregará o formulário de "feedback" no páginas diferentes de uma fonte. Assim, caso seja necessário corrigir o código, as alterações aparecerão automaticamente em todas as páginas do site onde for disponibilizado.

Como verificar: pergunte ao candidato se ele duplica o código. Nenhum amador dirá “sim, acontece”, mas explicará isso pelo tempo irracional gasto para se livrar de duplicatas. Se a resposta for "não", então o programador está mentindo, escrevendo pouco ou é perfeccionista - qualquer uma dessas explicações é uma opção ruim.

10. Corte vivo

No bom sentido, o programador deve fazer uma cópia do site, testar as alterações nele e somente após verificar as alterações transferi-las para o recurso principal.

Como verificar: pergunte ao candidato como ele atualizou o site no local de trabalho anterior.

11. Confia, mas não verifica

Quaisquer alterações no site devem ser testadas. Nas grandes empresas, a tarefa é resolvida pelos testadores, mas nas médias e pequenas empresas, ela recai sobre os ombros do desenvolvedor.

Sem verificar a integridade do site após as alterações, pode haver muitos erros que os usuários encontrarão. Os problemas afastarão os clientes em potencial, o que afetará negativamente os lucros da empresa.

É importante que o programador verifique não apenas o desempenho do site, mas também teste-o quanto a erros que os usuários possam cometer. Portanto, ao desenvolver um formulário de feedback, você precisa verificar não apenas o envio correto, mas também a resposta do site em caso de preenchimento incorreto dos campos. Por exemplo, verifique se você insere acidentalmente um número de telefone no campo "E-mail", o usuário recebe uma indicação de erro.

Como verificar: se houver dúvida no programador, teste você mesmo o site. Suponha que, depois de integrar o site aos sistemas de pagamento, tente pagar o pedido, por exemplo, por meio do Yandex.Money. Tudo deve correr bem.

12. Sorria e acene


O ritmo atual de fazer alterações no site não permite eliminar todos os erros, é muito caro e lento. Portanto, um desenvolvedor competente configura um sistema de monitoramento e aprende sobre os problemas antes que os usuários o informem.

É ruim se o programador resolver problemas por muito tempo ou ignorá-los. Um bom especialista é guiado em seu código e, se surgirem problemas, ele pode determinar rapidamente a causa e eliminá-la.

Como verificar: peça ao programador para contar como ele descobriu erros em projetos anteriores.

Provavelmente, todo mundo sabe o que é Tetris, já que este é um jogo que mais de uma geração está sentado por horas a fio. Mas, infelizmente, a pessoa que inventou este jogo não alcançou popularidade. E poucas pessoas sabem quem é o inventor deste jogo. Acontece que Alexey Pajitnov é o homem que inventou o Tetris, nosso compatriota. Ele nasceu em 14 de março de 1956 em Moscou.

Alexey Pajitnov: biografia

Na escola, Alexei estudava normalmente e não se destacava entre seus colegas. Mas, como ele lembra, seu diário estava sempre cheio de comentários dos professores.

Alexei Leonidovich se formou na Escola de Matemática e, posteriormente, no Instituto de Aviação. Depois de se formar no instituto, Pajitnov conseguiu um emprego em um centro de informática, onde inventou jogo lendário em 1984. Em 1991, Alexey mudou-se para os EUA. Ele tem muitos trabalhos e prêmios em seu crédito.

Criação de Tetris

Em 1984, jovens cientistas ficavam horas sentados em laboratórios sem nada para fazer. Então Aleksey Leonidovich Pajitnov era uma dessas pessoas. Durante esses anos, ele se dedicou ao estudo de problemas relacionados ao reconhecimento e inteligência da fala humana. Para superá-los, era necessário resolver quebra-cabeças e tarefas difíceis. E então Aleksey decide criar um quebra-cabeça que seja interessante para crianças e adultos.

O que tornou Alexey Pajitnov famoso? Ele originalmente criou jogo de computador, onde as figuras tiveram que mudar de posição sob a gravidade de outros objetos. Mas os computadores não tinham muito poder, então o jogo teve que ser simplificado. Suas figuras consistiam em cinco quadrados idênticos, mas o povo não gostou muito de seus esforços, e então ele decidiu criar algo mais simples. Para o Tetris, foram desenvolvidas sete figuras diferentes. Esse número não foi escolhido por acaso, é esse número que a memória de uma pessoa consegue lembrar. O jogo foi compilado usando a linguagem Pascal.

O que tornou Aleksey Pajitnov famoso em todo o mundo? Ele cria Tetris, no qual pedaços de quatro quadrados caem. A propósito, poucas pessoas sabem por que o Tetris é chamado assim. Na verdade, na tradução, a palavra "tetra" significa quatro. Embora este jogo tenha sido originalmente chamado de tetramino, as próprias pessoas o renomearam para simplificar a pronúncia.

Como o próprio criador diz Ótimo jogo Ele o criou para dar prazer às pessoas. Alexey acredita que absolutamente todos os jogos que mais tarde se tornaram famosos em todo o mundo devem ser criados para esse fim.

Depois que Alexei criou o Tetris, a fama do novo brinquedo se espalhou por muitas cidades e, duas semanas depois, todos estavam jogando, competindo entre si. Embora na primeira semana apenas os funcionários da empresa em que Alexei trabalhava estivessem ocupados com diversão. Dois meses após o lançamento do primeiro modelo de Tetris, Pajitnov e seu colega criaram uma versão colorida do jogo. A vantagem do novo jogo pode ser chamada de fato de ter uma tabela de recordes. O Tetris foi jogado não apenas na Rússia, mas também no exterior, o jogo ganhou popularidade.

Vale a pena notar que a Academia de Ciências, onde Pajitnov trabalhava na época, foi oficialmente considerada a criadora do jogo. É por isso que Pajitnov por muito tempo não poderia receber renda de sua invenção. Afinal, o jogo foi criado durante o horário de trabalho e em um computador funcional, por isso os direitos não pertenciam a Alexei.

Direitos do jogo

Muitas pessoas queriam comprar os direitos do jogo Tetris de Alexey. O primeiro foi Robert Stein, com quem os empresários soviéticos queriam cooperar no futuro, que queria ganhar muito dinheiro com a invenção de Pajitnov. Embora Pajitnov não tenha assinado nenhum documento ou contrato com eles. Muitos americanos até criaram suas próprias versões do Tetris, que não eram menos populares.

O Stein húngaro posteriormente revendeu os direitos do jogo para a Microsoft. O Tetris americano foi criado em 1989. Desde então, mais de 70 milhões de jogos foram vendidos e mais de 100 milhões de downloads em dispositivos móveis. Um pouco mais tarde, começaram a ser criadas máquinas de jogos e arcade com o jogo Tetris.

Criação da empresa Tetris

Apesar de Alexey Pajitnov não ser tão pessoa famosa, tudo deu certo para ele na vida, pois o inventor trabalhou muito. Ele conseguiu organizar o Anima Tek, que recebeu uma oferta de cooperação da Microsoft. E já tendo se mudado para os EUA, organizou uma empresa chamada Tetris, e só então começou a ganhar dinheiro com um jogo criado há muitos anos. E desde 1996, Alexey Pajitnov trabalha oficialmente na Microsoft. Em todos os produtos produzidos por Alexey, há uma observação de que ele é considerado o criador do lendário jogo.

Filme sobre a criação de Tetris

Recentemente, vazou para a imprensa a informação de que eles planejam fazer um filme na América para que todas as pessoas saibam quem criou o jogo, no qual muitas gerações passaram muito tempo. Os diretores deste filme, claro, serão americanos. ainda não conhecido data exata lançamento do filme.

O enredo do filme não será apenas a personalidade de Alexei Pajitnov, mas também o próprio Tetris. A trama será de ficção científica. Segundo os diretores, o filme promete não ser menos popular que o próprio jogo.

tetris hoje

Apesar de hoje estar muito bem desenvolvido, ainda há quem jogue Tetris. Além disso, cada console de jogo possui um jogo semelhante. Hoje, muitos jogos foram desenvolvidos semelhantes ao Tetris. Você pode jogar com um grupo ou sozinho. A propósito, este jogo desenvolve erudição e outras habilidades na criança.

A vida de Alexey Pajitnov hoje

Apesar de Aleksey morar nos EUA, ele nunca pensou em emigrar, aconteceu por acaso. E Pajitnov não poderia recusar tal presente do destino. Hoje, Alexey é funcionário de uma empresa conhecida no mundo. Vários jogos foram lançados em sua conta, principalmente quebra-cabeças que estão em alta. Ele lança aplicativos para vários consoles, mas principalmente no PC. O jogo Tetris é muito popular e provavelmente nenhum outro jogo será capaz de alcançar tamanha popularidade. Alexey Leonidovich admite que sua esposa não brinca com nenhum brinquedo, e os filhos gostam de brincar com os jogos que o pai cria, e ele tem orgulho disso.

O próprio Aleksey Pajitnov joga não apenas seus jogos - sempre que vai às compras, sempre consegue algum tipo de quebra-cabeça para si. Ele vê sua inspiração nos jogos. Pajitnov ainda joga Tetris, mas não se considera o melhor jogador. Alexei ainda não cresceu e cresceu para crianças em idade escolar que mostram melhores resultados neste jogo.

Quem sabe, talvez Alexei Leonidovich lance outro jogo que não se tornará menos popular que o lendário Tetris.

O meu caminho

Escolha da profissão Tenho sido muito previsível para os outros e incrivelmente surpreendente para mim. O fato é que tanto meu pai quanto minha mãe são programadores. Da primeira geração de cientistas da computação soviéticos. Papai soldou esses enormes EU-ki e mamãe carregou cartões perfurados neles. Ao mesmo tempo, na escola, sonhava em ser químico, depois biólogo e depois entomologista. Eu amo muito a natureza.

Mas nas últimas aulas (93-95) me familiarizei com computadores e fui completamente sugado.

Primeiro, infinitas olimpíadas em ciência da computação, depois o primeiro modem em casa, depois em nossa Bryansk Technical University abriram a especialidade "Programação" e claro que passei. Não percebi como os anos passaram, acordei por volta do 5º ano, na região do meu diploma, sofri com meus sonhos escolares por 10 minutos e desde então tenho trabalhado sem parar na minha especialidade.

Comecei a trabalhar “para valer” no 3º ano, quando, por ordem da minha mãe, comecei a escrever pequenas coisas para o banco, onde ela passou a chefiar a TI. Primeiro, alguns transcodificadores de arquivos, depois scripts no programa do terminal Telemate para trabalhar com o centro de liquidação de caixa, depois houve grande projeto - local de trabalho caixa de moeda. Não havia Internet, assim como abundância de livros - ele absorveu todas as informações que pôde alcançar.

Li os furos e manuais do Clipper, e as novidades do Turbo Pascal 7.0 na revista "Computer-Press". Tentei todos os programas. Então, um dia, trouxe para casa um disco do FreeBSD e o coloquei ao lado do Dos. Fui sugado instantaneamente: abandonei completamente o FoxPro e o Delphi, comecei a escrever em awk e Perl e, depois de dois anos, consegui um emprego em um ISP.

Eu tinha meus ídolos: a indústria é jovem, quente, tudo está fervendo, a cada seis meses há uma descoberta e uma nova estrela.

Mas principalmente admirava todos os tipos de grandes cientistas estrangeiros, é claro. Dijkstra, Diffie, Butch. Richard Stallman quando fiquei mais velho e sábio. Bem, um dos colegas da minha mãe, um programador de Bryansk, Leonid Osovtsov :) Ele estava tão vivo, um verdadeiro ídolo, não um ícone. Ele partiu há muito tempo, vive feliz em Israel.

A principal descoberta daqueles tempos para mim é incrível mundo enorme software grátis. Um disco de distribuição FreeBSD continha mais software do que eu tinha visto em todos os anos anteriores sob Dos. E nenhum deles exigia uma busca por um número de série. Sim, e tudo está no código-fonte. Rapidamente me envolvi no processo de desenvolvimento, escrevi patches, discuti com os desenvolvedores. De alguma forma, em um momento, o computador se transformou de uma máquina caça-níqueis e uma máquina de escrever em uma janela em Mundo grande. A Internet consistia quase inteiramente de programadores e, portanto, era muito fácil para mim na época.

Rapidamente atingi o teto em Bryansk e imediatamente após receber meu diploma parti para Moscou. Artus, Agave, Inline, Channel One, Rambler. Trabalhei na Rambler por 4 anos, primeiro programei o webmail, depois criei um departamento para 15 pessoas e supervisionei.

Aproximadamente em 2002, já tendo me mudado para Moscou, descobri o Runet :) Tendo ficado profundamente atolado no ambiente de língua inglesa (não digo “sites”, porque naquela época a Internet não consistia apenas na web), Eu simplesmente perdi o momento de sua aparição. Eu tive que me apressar.

Preciso

Agora trabalho como soldado técnico universal na startup NadoBy.ru. Formalmente - um diretor técnico, mas meio período e administrador de sistema, testador, arquiteto, gerente de tarefas, gerente de produto e projeto, designer de usabilidade, codificador e programador em 3,5 idiomas. Em geral, ajudo minha equipe técnica de 4 pessoas em todas as frentes. As tarefas são em sua maioria fáceis conceitualmente, mas requerem uma resposta rápida diante de um grande número de incógnitas. Tento atribuir tarefas interessantes, grandes e criativas aos funcionários, caso contrário, posso me empolgar e me dedicar a elas por muito tempo, e aí a gestão sofre. [Nota do editor: agora, 4 anos após a redação deste texto, Alexey trabalha no departamento postal Yandex]

Existem atividades fora do trabalho. NO recentemente Estou associado à organização de todos os tipos de conferências técnicas. Participo do trabalho do grupo de programadores Pearl de Moscou Moscow.pm. De vez em quando eu crio, apoio e participo de vários projetos de código aberto. Curiosamente, tudo isso pode ser bem combinado com o processo contínuo de autoeducação, para que todos saiam ganhando.

Trabalhe em startups

Tenho certeza de que absolutamente toda pessoa é obrigada a trabalhar em uma startup. E quanto mais cedo melhor. Por exemplo, logo após a universidade ou nos últimos anos, quando as circunstâncias de vida mais ou menos livres permitem que você corra riscos com segurança. Startup é prática por princípios economia de mercado, sobre o gerenciamento de recursos nas condições da raridade desses mesmos recursos, esta é uma oportunidade para um especialista entender por que o marketing é necessário em princípio, por que as pessoas andam com ternos de negócios e usam roupas sem sentido relógio de pulso por que a publicidade é um mal necessário, etc. Você pode continuar indefinidamente. Eu tenho tudo isso acontecendo agora, bem tarde, mas o que você pode fazer.

Em uma startup, você aprende de maneira diferente - não há tarefas de pesquisa difíceis e complexas, mas há muitas tarefas muito urgentes, muito importantes e muito pequenas. Isso é comunicação constante, parceiros-agentes-clientes, essa é a experiência de contratar não só os melhores, mas também os mais baratos. Recomendo vivamente a todos que experimentem.

programador ideal

Algumas palavras sobre algum camarada ideal em nossa profissão, que não me tornei, nunca me tornarei e me arrependerei para sempre desses dois “não”.

Este camarada deveria ter percebido muito, muito cedo que um programador é um mecânico, de quem uma máquina é retirada a cada 15 minutos e um novo modelo seguinte é trazido.

Há algumas palavras importantes aqui.

Primeiro, serralheiro. Um programador-criador, uma pessoa valiosa que rapidamente faz muitas coisas boas - está longe de ser uma profissão criativa ou mesmo de pesquisa, apesar do halo com que está envolto até hoje. Para tal pessoa, paciência e perseverança são cem vezes mais importantes do que talento, habilidades em matemática e lingüística e coisas semelhantes que são elogiadas na escola.

Segundo, 15 minutos. O programador está constantemente aprendendo. Apenas geralmente sempre. isto característica comum muitas (se não todas) profissões jovens, mas não combina bem com encanamento. Com o fato de que uma pessoa deve ser um eterno aluno e um bom trabalhador. Afinal, como acontece com os trabalhadores - com seu martelo favorito, você pode trabalhar perfeitamente e de forma produtiva por 20 anos. Nós temos o contrário. Embora haja um separado grande história sobre pessoas que chegam ao nível de criar suas próprias máquinas.

Em terceiro lugar, esta mesma máquina. Agora todo programador usa (números tirados do teto) 45 bibliotecas, 5 frameworks, 2 editores de texto, 2 sistemas operacionais, 5 idiomas intimamente interligados, 2-3 sistemas de controle de versão e muitas outras ferramentas, como um rastreador de bugs, um ambiente wiki, um depurador, um criador de perfil e assim por diante. Esta é uma máquina realmente grande e complexa, quase a cabine de um avião. O próprio local de trabalho tornou-se um sistema complexo, uma máquina CNC. Pessoas que conhecem um editor de texto e a linguagem C, não são amplamente aplicáveis. (Como regra, eles são muito valiosos em seus lugares, mas esses lugares - um, dois e mal calculados).

Pode ser...

há muito uma boa opção para aqueles que duvidam: vá para a ciência. Eu recomendo. Após o diploma, procure imediatamente uma boa pós-graduação na Europa ou nos EUA e vá roer granito.

Há tantas coisas que faltam a nós, programadores, queremos muito mais pessoas Eu ia escrever artigos, e não lançar projetos carregados ou, Deus me perdoe, otimização de mecanismos de pesquisa. Há tantas coisas mais interessantes a serem descobertas, tantos alicerces a serem lançados. Incrivelmente, é 2010 e não há inteligência artificial. Em vez disso, um cluster de meio milhão de servidores exibe anúncios, centenas de redes de bots distribuídas chiques enviam spam e o ídolo de milhões é a empresa que lançou o primeiro DRM em massa. Uma desgraça, vergonha perante o Universo.

Se eu não tivesse me tornado um programador, eu teria sido um cientista, um naturalista 100%, provavelmente um biólogo.

Por quê? Bem, em geral, não entendo as pessoas que escolhem uma profissão racionalmente, de acordo com o cálculo. Tínhamos esses caras no instituto - eles iam, por exemplo, estudar para a especialidade maçante "Turbinas", porque os turbinadores eram levados para a Gazprom. eu vejo isso homem moderno O trabalho é uma grande e muitas vezes a parte mais importante da vida, e deve ser escolhido apenas por amor. Tive meu primeiro amor pela biologia, mas depois troquei pela ciência da computação.

Dia a dia de um programador

Agora meu trabalho consiste em preencher o esqueleto da tarefa do produto com “carne” e dar ao programador a oportunidade de resolvê-lo completamente confortavelmente para si mesmo. Este é o trabalho de um diretor de desenvolvimento. Em qualquer startup, o diretor técnico é primeiro o diretor de desenvolvimento e só depois o verdadeiro diretor técnico, ou seja, o gerente de suprimentos. Para ser uma família, você deve primeiro desenvolvê-la.

Todos os lugares de borda, momentos de integração, mesmo apenas erros complexos controlar e me corrigir tempo livre. Tudo está se movendo muito rápido, como eu queria, como eu previ. Todos os dias eu estudo. Todos os dias leio blogs, não só porque é interessante, mas também porque é impossível fazer de outra forma.

O ruim é que há muitos negócios no trabalho. Odeio negócios, adoro honestidade, liberdade e comunismo :)

Felizmente, percebi desde cedo que só os negócios garantem a liberdade. Honestidade, se você se esforçar, poderá observar em si mesmo e nos entes queridos, e construiremos o comunismo quando inventarmos inteligência artificial, que nos dará energia gratuita. Desde que tudo corra conforme o planejado :)

As qualidades que você precisa buscar desenvolver para se tornar um profissional de destaque são:

  • Paciência. Um programador que resolveu 10 problemas 10 vezes costuma ser melhor do que outro que resolveu 100 problemas diferentes. Porque (surpresa) a repetição é a mãe do aprendizado.
  • Comunicações. Programadores autistas não são mais contratados. À medida que a indústria amadurece, há menos coisas valiosas que você pode fazer sozinho.
  • Coragem em assumir riscos.
  • Facilidade de elevação.
  • Estampa cega :)

Estabeleça metas altas e dignas para si mesmo. Pratique, pratique, todos os dias. De manhã, imediatamente após o carregamento, meia hora ou uma hora de codificação simples. Cuide bem da sua saúde. Tente não comer, assistir ou ler muito. Não faça coisas inúteis.

Trabalhar no Ocidente atrai muitos de nossos compatriotas que possuem conhecimento profissional na área de programação e que desejam realizar seu potencial na Europa ou América do Norte. Lembro que o autor dessas linhas uma vez foi estudar no exterior por dois anos em um programa de intercâmbio estudantil. Se eu tivesse a oportunidade de conversar com pessoas que já estudaram lá antes de mim, seria muito mais fácil me adaptar. E a questão - sair ou não - causaria menos dúvidas. Por isso, hoje fazemos perguntas a Andrey Shulinsky, um homem que trabalhou como programador na Rússia e partiu para Toronto, no Canadá, para continuar suas atividades profissionais por lá...

Entrevista

Alexey Perevertailov: Felizmente, nos conhecemos pessoalmente, vamos mudar imediatamente para "você" e um formato de conversa menos formal. A primeira pergunta é quando você deixou a Rússia e quais foram os motivos para um passo tão sério, que para muitas pessoas requer muita reflexão?


Andrey Shulinsky: Minha partida tem uma longa história. A decisão veio após a infame crise bancária de 1998. Por vários motivos, o processo de imigração se arrastou muito, fiz uma entrevista em novembro de 2001 e em dezembro de 2002 recebi o visto. Ele expirou em fevereiro do próximo ano, então fui imediatamente para o Canadá por algumas semanas, emiti Documentos exigidos e voltou para Moscou. Ele finalmente se mudou para sua nova casa em outubro de 2003.
Por que mudei de ambiente? Provavelmente não direi nada de novo. Esperava melhores perspectivas profissionais. Sempre desgostei fortemente de muitos recursos vida russa: grosseria doméstica, sujeira, instabilidade. A crise mencionada foi para mim muito com um golpe forte, lindas ilusões despedaçadas... Também gosto muito de viajar, o que é muito mais fácil com passaporte canadense.


Alexey Perevertailov Q: Você conseguiu encontrar um emprego imediatamente? Quais foram as propostas que você considerou e quais foram os requisitos para os candidatos?

Andrey Shulinsky: Recebi meu primeiro contrato em novembro de 2003. Meu amigo ajudou. O projeto era pequeno, mas bastante interessante e ajudou muito psicologicamente e profissionalmente. Alongou meus músculos antes de um trabalho mais sério, que me encontrou no final de janeiro de 2004.
Requisitos, com exceção da notória experiência norte-americana, são bastante comuns - em poucas palavras, "conhecimento do assunto". :-) Infelizmente, muitas empresas e recrutadores realmente não gostam de trabalhar com recém-chegados, enquanto outros, ao contrário, aproveitam a disposição dos novos expatriados para concordar com quaisquer condições. Não direi que esta é uma prática generalizada, mas não é tão rara.
Este copo passou por mim, embora eu já estivesse pronto para digitalizar documentos. Em geral, sempre me preparei para o fato de que não será fácil e, talvez, tenha que fazer algo que não é o meu favorito. Enviei um currículo para todos os cargos aos quais correspondia pelo menos um pouco.


Alexey Perevertailov: Que tipo de programador você é? Quais diplomas e certificados você possui?

Andrey Shulinsky: Sou um típico programador/analista/arquiteto de aplicativos gerais. Ele se formou no Departamento de Programação de Sistemas da Universidade Estadual de Moscou, mas em sua vida não escreveu uma única linha de código de "sistema". :-) Eu costumava escrever em C++, mas mudei para Java alguns anos atrás. Trabalhou muito tempo no setor bancário, depois teve alguns projetos de telecomunicações. No Canadá, ele primeiro criou um sistema de armazenamento e processamento de documentos para uma empresa de marketing com o nome sonoro Arnold. Agora estou trabalhando na empresa Novator, estou criando uma versão Java do "mecanismo" para sites que lidam com vendas no varejo online.
Eu tenho um diploma. Recebido em 1996 na Faculdade de Matemática Computacional e Cibernética da Universidade de Moscou Universidade Estadual. Passou no exame Sun Certified Java Programmer, 1.4 antes de sair. Planejei obter o restante dos certificados desta linha, mas trabalho muito e não consigo encontrar tempo para isso.



Alexey Perevertailov: Em geral, você pode dizer - quais linguagens de programação e quais programadores são mais procurados no exterior e no mundo como um todo?

Andrey Shulinsky R: Principalmente .NET e J2EE. O que você estava pensando em ouvir? ;-) Essas 2 plataformas cobrem o céu... No entanto, a julgar pelos anúncios em sites de busca de empregos, ainda há uma certa demanda por especialistas em C++, Cobol, Perl. Às vezes, você precisa - e até muito - de especialistas restritos que conheçam algum tipo de SAP "sofisticado". Mas, é claro, a maior parte dos programadores e outros desenvolvedores seniores são "javistas" e "dotnetters". :-)


Alexey Perevertailov: Por experiência própria, diga-me - há competição entre programadores dentro da empresa? Existem regras rígidas e rápidas? Por que eles podem ser demitidos? Quer haja um carreira? Horas extras Isso acontece e, em caso afirmativo, como é pago? Você trabalhou como programador na Rússia, pode comparar, então a pergunta é: que diferenças você notou nos requisitos profissionais e na organização do fluxo de trabalho em casa e no exterior? Foi difícil para você encontrar linguagem comum com o gerente de projeto?


Andrey Shulinsky: Nas empresas onde tive a oportunidade de trabalhar, não havia uma competição óbvia, também conhecida como "competição social". :-) Mas, ao mesmo tempo, uma lei simples se aplica: se você trabalhar bem, eles perceberão e apreciarão. Pelo menos comigo foi assim. E o salário foi aumentado e um trabalho mais interessante foi confiado.
Claro que eles podem ser demitidos. Basicamente, isso se deve a problemas da empresa (downsizing) ou a uma clara discrepância entre as capacidades de uma pessoa e seu cargo. Tão amado por muitos liberdade condicional passa a ser útil. Portanto, não exagere demais suas habilidades em uma entrevista. Há também casos de demissão devido a atividades ilegais de um funcionário.
Sobre a questão das regras estritas - você não deve armazenar gigabytes de pornografia infantil no disco rígido de um computador em funcionamento - elas podem ser punidas. Todos os contratos contêm cláusulas mais ou menos padrão sobre não divulgação de informações, direitos de propriedade intelectual da empresa sobre seu código (ativo duvidoso, IMHO :-)). Muitas vezes é proibido mudar para empresas que operam no mesmo setor, para ganhar dinheiro extra paralelamente. O grau dessa paranóia depende de muitos fatores. Grandes bancos e outras empresas "legais" são obrigados a assinar listas de 8 folhas. Mas a mesma coisa existe na Rússia, mas aqui, eu acho, eles monitoram o cumprimento dessas condições com um pouco mais de rigor.
Os requisitos profissionais em Toronto e Moscou são os mesmos. Suspeito que coincidam com os requisitos das empresas de Londres e Tóquio e estejam próximos dos pedidos parisienses. A diferença é que na França você pode precisar do francês. Pode, mas não deve - conversei com recrutadores que recrutaram pessoas para trabalhar em uma empresa localizada em Lyon. Eu honestamente admiti que eu não possuo Francês mesmo com um dicionário. "Ah, aí todo o fluxo de documentos está em inglês", foi a resposta para mim. :-)
A organização do fluxo de trabalho é muito dependente das pessoas que lideram o projeto. Se eles entregaram bem desde o início e não deixam o projeto dar errado, mesmo quando está em todo lugar, então as coisas estão indo bem. Caso contrário - a bagunça usual. Caros leitores, provavelmente já adivinharam o que acontece com mais frequência. :-)
Nunca tivemos problemas com gerentes de projeto. Sempre encontrei facilmente uma linguagem comum com as pessoas - tanto na Rússia quanto no Canadá. Você provavelmente notou quantas vezes repito as palavras "o mesmo", "o mesmo", "não há diferença". Na verdade, descobri que russos e canadenses não são tão diferentes uns dos outros quanto geralmente se acredita. Claro, existem dificuldades de tradução. Mas, como em um grande filme, eles em geral associado às características individuais das pessoas, e não às diferenças "civilizacionais". Foi assim que consegui IMHO. :-)


Alexey Perevertailov: Os programadores no Canadá são uma profissão bem remunerada em relação às outras? Se compararmos essa proporção com a Rússia, onde é melhor trabalhar como programador (em termos de ganho financeiro)?

Andrey Shulinsky: Sim, os salários ainda estão acima da média. A concorrência aumentou, mas o salário ainda é bom. No entanto, esta é apenas uma opinião subjetiva e estou no Canadá há menos de dois anos. :-)


Alexey Perevertailov: O que você acha, onde é mais fácil melhorar seu nível profissional - em casa ou no exterior? Geralmente depende de alguma forma do país (ou melhor, depende de uma pessoa em particular)?

Andrey Shulinsky: Minha opinião - antes de tudo da pessoa. Quem pesquisa sempre encontra livros úteis, revistas, fóruns e, claro, aqueles com quem se pode comunicar sobre temas profissionais. Claro, presumo que você trabalhe em um país onde a indústria de TI é bem desenvolvida.


Alexey Perevertailov: Quais ferramentas você usa (ambientes de desenvolvimento, etc.)? Presumo que no Canadá todo software usado por empresas de desenvolvimento de software é licenciado ou não?

Andrey Shulinsky: digamos apenas - a maioria dos programas é comprada ou recebida gratuitamente. :-) Às vezes as pessoas colocam algo obtido ilegalmente, mas isso é feito apenas para conhecimento - se não estiver disponível versão de teste. As empresas proíbem o uso de software pirata em geral ou o obrigam a assinar um documento segundo o qual você mesmo é responsável pelo conteúdo do disco rígido.
Uma variedade de aplicações são usadas. IDE: Eclipse, IDEA, NetBeans. Ferramentas de banco de dados: DbVisualizer, Aqua Data Studio. O código e os documentos são armazenados no CVS. De comprado tratado com WebSphere. Todos os rostos familiares, certo? :-) E, claro, .NET - existem soluções para todas as ocasiões.


Alexey Perevertailov: Você consegue se lembrar de algum caso engraçado ou engraçado no trabalho?

Andrey Shulinsky: Por favor. O chefe acabou de perguntar a um de seus colegas se ele está atualizando o código há muito tempo. "Uh ... três dias atrás ..." - um olhar ameaçador - "mmm ... talvez dois" - um olhar ameaçador - silêncio - eu indico: "um, senão o negócio vai fracassar" - a situação está piorando. :-)


Alexey Perevertailov: Gostaria de lhe fazer algumas perguntas de carácter geral, se não se importa... Acha realista organizar o seu próprio negócio no estrangeiro? No caso de um programador - para criar seu próprio produto de software comercial e vendê-lo, desenvolvê-lo, apoiá-lo? O que você acha que é necessário para isso?

Andrey Shulinsky: Minha opinião - sim, é real. Aqui, um empresário não pode ter medo de extorsão de bandidos e autoridades, registrar e administrar seu negócio é bastante fácil. Mas, claro, sem os dois principais componentes de qualquer sucesso - uma boa ideia e a vontade de dedicar todo o tempo e esforço à sua implementação - nada funcionará. "Workaholic ideológico" tem uma chance. Um exemplo é o presidente da minha empresa atual, que escreveu a primeira versão do sistema no porão de sua casa. :-) Agora "Innovator" está indo bem.


Alexey Perevertailov: Qual é a sua atitude em relação à comunidade Open Source?

Andrey Shulinsky: Claro, positivo. Considero o trabalho desta comunidade uma grande ajuda para o progresso em geral, e a principal razão para o sucesso das tecnologias Java em particular - o que também beneficia claramente a indústria. É improvável que, de outra forma, seria possível competir com sucesso com monstro famoso. :-) Claro, há um certo risco em usar produtos Open Source. Ao mesmo tempo, muitas dessas soluções têm excelente reputação, estão no mercado há muitos anos - e você não precisa conhecer seu "interior" a fundo. A sociedade ajudará a resolver quase todos os problemas, o que está longe de ser feito por qualquer serviço de apoio comercial.


Alexey Perevertailov: Como você se sente sobre a lei de patentes no campo da Programas? Isso sufoca o progresso? O que você vê como os melhores mecanismos para proteger as inovações de software?

Andrey Shulinsky: Desculpe, não estou pronto para responder essa questão. Este é um tópico bastante sério, o material sobre o qual não conheço bem o suficiente.


Alexey Perevertailov: Em seu trabalho, você tem que lidar com a busca de vulnerabilidades no produto que está sendo criado? Muita atenção agora está sendo dada à escrita de código seguro, o que torna menos provável a exploração de vários erros de estouro de buffer, etc. No seu trabalho, você monitora a segurança potencial do código? Você tem alguma instrução sobre este assunto?

Andrey Shulinsky: Testando, apenas testando - e testando novamente! Considero o teste de unidade uma ferramenta fundamental para garantir a segurança do código. Via de regra, todas as empresas de desenvolvimento de software tentam criar e manter um conjunto de testes. Infelizmente, isso raramente é possível - principalmente devido aos prazos apertados para a entrega dos projetos. Mas o efeito a longo prazo de testes competentes é difícil de superestimar. Como resultado, e até certa data, não é de forma alguma Galatea que sai das mãos dos escultores, e o refinamento do apêndice de alguns curso estável se arrasta por muito tempo, causando estresse a toda a equipe.
A disciplina de codificação e construção de uma boa arquitetura também são muito importantes. Pessoalmente, aprendi muito com os livros de Martin Fowler (Martin Fowler) e Rod Johnson (Rod Johnson).


Alexey Perevertailov: E, finalmente, tal pergunta - se houvesse uma oportunidade hipotética de começar tudo desde o início - você ainda se tornaria um programador?

Andrey Shulinsky: Sim. Foi a especialidade que me ajudou a mudar-me para outro país quase sem dor, a ultrapassar os habituais problemas psicológicos e materiais do emigrante. Minhas qualificações e profissionalismo são exigidos, meus colegas ouvem minha opinião, eu pertenço aqui, pelo menos eu sei por enquanto língua Inglesa pior que Java. :-) Além disso, eu amo muito o meu trabalho. Todos os que já estiveram envolvidos em programação provavelmente se lembram dos momentos em que ele - um programa - começa a funcionar da maneira que você pretendia. Ainda sou verdadeiramente feliz nesses momentos.
E ainda mais. Sou muito grato aos meus pais por sua grande ajuda na escolha caminho profissional e de pé sobre ele. Nem todo mundo consegue encontrar negócios _svoe_. Sem a participação deles, isso não teria sido possível para mim.
PS Claro, também ajudou o fato de eu ser tão inteligente e bonito. :-)


Alexey Perevertailov: Obrigado por suas respostas, desejamos muito sucesso em suas atividades profissionais!

Andrey Shulinsky: Obrigado, boa sorte para você pessoalmente e para o F-Center em geral. :-)

Ao contrário de muitos de meus colegas, não nasci programador. Eu nasci músico. Não estudei programação na universidade e até certo momento não ia nem ligar minha vida com TI.

Mas sempre me senti atraído por Moscou, com suas calçadas largas, longos aterros e parques enormes. Mas uma vez lá, você sente a necessidade de dinheiro mais do que em qualquer outra cidade de nossa incrível pátria. Naquela época, meu irmão mais velho alugava um apartamento com dois programadores que trabalhavam em algum banco. Então, em uma das conversas na cozinha, mergulhei no mundo do Python pela primeira vez. Muito tempo se passou desde aquele momento até eu conseguir meu primeiro emprego como desenvolvedor Python.

Primeiros passos na programação

Então, uma vez em Moscou, tive que procurar trabalho, pois não poderia morar fora por muito tempo. Naquela época, minhas habilidades eram suficientes apenas para conseguir um emprego de suporte técnico para uma grande e imoral empresa. Eu recebia pedidos por telefone e ia e voltava longos corredores edifícios para conectar ratos às unidades do sistema, que por sua vez decolaram dos ninhos de todos os funcionários do escritório.

Foi aí, percebendo o absurdo do que estava acontecendo, que escrevi meu primeiro programa. Nas horas vagas, estudava as possibilidades da linguagem e escrevia scripts para administração do sistema. Os administradores seniores rapidamente perceberam isso e começaram a me dar tarefas para escrever este ou aquele programa, e fiquei surpreso ao descobrir que, mesmo com minha experiência mínima, programo melhor do que eles e posso ser útil para eles nisso.

primeiro trabalho

Surpreendentemente, nunca trabalhei como júnior. Eu imediatamente fui para o meio. Mas tive tentativas de conseguir um emprego como desenvolvedor júnior. Lembro-me bem dessa entrevista.

Dois programadores bem educados (o que é engraçado, eles eram marido e mulher) testaram meu conhecimento e pensamento por duas horas inteiras, após o que concluíram que meu conhecimento claramente não era suficiente, mas não me recusaram, mas me deram um lista de referências e me enviou para terminar meus estudos. Duas semanas depois, voltei para uma entrevista e mostrei uma capacidade de aprendizado fantástica, respondendo a muitas perguntas que antes não conseguia responder. No dia seguinte, eles me ligaram e disseram que eu era aceito. Disseram-me um salário que não daria nem para alugar moradia e alimentação, sem contar alguns excessos. Recusei imediatamente e nunca me arrependi, pois consegui um emprego como administrador de sistemas em uma empresa mundialmente famosa, onde continuei meu autotreinamento como programador. Uma coisa importante que aprendi com essa história é que nada guia e impulsiona tão bem quanto uma entrevista!

Qual é o próximo

Em algum momento, cansado da vida de escritório e do trabalho como administrador, economizei algum dinheiro e fui viajar para a Índia por seis meses. Ah, se eu pudesse descrever o que foi por seis meses, um livro não seria suficiente, não como este artigo. Quando voltei, já sabia que tentaria novamente um emprego como programador, e desta vez a sorte sorriu para mim, e eu estava muito mais preparado para isso. Durante seis meses de viagem, melhorei muito, muito bem o meu inglês falado, o que agora me ajuda todos os dias na comunicação com os colegas. Entrar no ambiente de linguagem acabou sendo muito mais eficaz do que qualquer livro didático (aliás, o mesmo pode ser dito sobre programação). Mas é melhor pular para lá já entendendo o básico, caso contrário, você usará as condições em que pode se tornar avançado para aprender o básico.

Então. No meu primeiro emprego como programador, eu era o único desenvolvedor back-end da empresa! Você não pode imaginar pior! Bem, o que eu queria, eu consegui. Mas no segundo emprego entrei em uma equipe maravilhosa, onde trabalhavam verdadeiros profissionais com muita experiência. Graças a eles, adquiri uma cultura de código e aprendi sobre padrões altos em desenvolvimento. Misha Korsakov e Andrey Belyak - respeito e respeito!

Agora

E agora eu trabalho remotamente em um empresa internacional e isso tem suas vantagens! Só não pense que agora estou deitado na praia com um laptop e aproveitando a vida ao máximo. Ainda trabalho muito e me canso muito, mas não preciso ir ao escritório. Moro em São Petersburgo, às vezes viajo. Consegui morar em Portugal, na Itália, na Geórgia, mas não posso dizer que de alguma forma tive um descanso especial lá. A organização de viagens adiciona muita complexidade extra e, quando combinada com o trabalho, pode ser duas vezes mais difícil do que trabalhar em casa ou no escritório. Mas você pode ver muitas coisas novas, bonitas e interessantes. E esta é uma clara vantagem!

mentoria

E minha orientação começou muito maneira engraçada e sem o meu envolvimento. Uma vez eu estava visitando um amigo e acidentalmente deixei um livro sobre Python e Django com ele. E na próxima vez que nos encontramos apenas um ano depois, ele me surpreendeu. Ele diz, e agora trabalho como programador! Você se lembra que esqueceu meu livro, então eu o li, fiz meu próprio site nele e recentemente consegui meu primeiro emprego.

Acontece!

Mais tarde, minha orientação continuou com o fato de que comecei a ensinar um de meus amigos. Apesar de ele passar quase todos os dias em um emprego diferente, nosso negócio está indo muito rápido e bem. O primeiro emprego como programador está chegando!

Como se tornar um desenvolvedor Python de sucesso? Alexey Kurylev compartilhará sua experiência com programadores iniciantes e experientes

Perguntas

Que conselho você daria aos iniciantes que é raro ou considerado incomum, controverso?

Junte-se a qualquer movimento! Não perca nenhuma oportunidade de praticar! Esteja sempre aberto a qualquer sugestão!

E o que é muito importante:

“Quando confrontado com a ambiguidade, resista à tentação de adivinhar.” - zen de píton

Como você mantém suas habilidades atualizadas? Como você continua crescendo e melhorando como desenvolvedor?

Bem, o trabalho não permite que você se torne irrelevante. Todos os dias você tem que fazer algo novo. Bem, eu li, claro. Eu estudo outras línguas. Comunique-se com outros desenvolvedores. Desenvolvo diversos serviços web em equipe com amigos, sem salário, apenas por interesse. E eu tenho mais descanso, se possível, isso também é necessário, então o autodesenvolvimento é mais fácil e rápido.

Os 3 melhores livros para iniciantes
  • Mark Summerfield - "Programação em Python 3. O Guia Definitivo"
  • Wesley Chan, Paul Bissex, Jeffrey Forsier - “Django. Desenvolvimento de aplicações web em Python”
  • Robert Martin - "Código Limpo" - Leia mesmo que não entenda de Java, é muito fácil Bom conselho. E ao mesmo tempo, você começará a aprender Java.