
Olá Habr!
Lembra da
história de Steve Jobs e Dennis Ritchie ? Não queremos organizar disputas e ler a moral novamente, mas a verdade permanece verdadeira - milhares de técnicos legais estão sentados nas sombras e suas histórias estão escondidas em um armário.
Nós, no escritório editorial da Habr, pretendemos corrigir isso. A partir de agora, entrevistaremos regularmente pessoas sobre quem elas não escrevem na mídia e que não são perseguidas nas redes sociais. Portanto, se você tem algo a dizer sobre si mesmo, prepare-se.
Para fazer você entender como ela ficará, vamos começar com o nosso exemplo. Sob o gato 10 perguntas gerais que faremos a todos. Para o piloto,
fillpackart respondeu a
eles . (Este mês, fiz várias entrevistas aparentemente boas com ele:
uma ,
duas ,
três ). Leia e se você quiser falar sobre você da mesma maneira, escreva mensagens para mim ou para o
baragol .
Philip Rangin, filho de um engenheiro de Ivanov. Ele começou a escrever em C ++ aos 16 anos de idade na universidade, depois estudou .net. Agora engenheiro de desenvolvimento de software sênior em um bom escritório no exterior. Além de idiomas comuns, ele escreve em F # e OCaml.1. Conte-nos sobre o recurso que você implementou e do qual você se orgulha.
"Não fiz nada do que me orgulhar." Durante toda a minha vida profissional, resolvi problemas muito triviais. Portanto, tenho orgulho do que sou capaz de fazer, mas não do que fiz.
Acho que poderia me orgulhar se pudesse implementar uma boa IA.
2. E agora - sobre o fakap mais feroz.
- Uma vez, durante todo o dia, tentei, sem sucesso, obter o OCaml no Windows (não tente repetir). Isso não tinha nada a ver com trabalho, e na manhã seguinte no comício era necessário mentir. Eu olho - um bug está ligado a mim que eu nem olhei. Bem, acho que "não pode haver um erro que não consiga corrigir em dois dias!" No comício, ele disse que trabalhou nisso e em dois dias haverá RP.
Como resultado, trabalhei nele por três meses.
O bug estava relacionado à interação de dois sistemas enormes. Foi reproduzido constantemente. Por três meses, construí várias hipóteses e as testei, cometendo erros repetidamente - até abandonei a construção de uma casa em Skyrim. Esses foram os piores três meses da minha vida.
Acabei fechando-o como "No repro". Eu vim para o diretor, disse: "Eu sou um tolo inútil, e quero sair para não atormentá-lo". Mas, em resposta, eles aumentaram muito meu salário.
3. Descreva seu espaço de trabalho: da cadeira e do monitor aos ambientes de programação e seus utilitários favoritos.
- Trabalho com sistemas operacionais Windows porque tenho uma pilha .net e porque o Windows tem a melhor interface do usuário. Estou sentado em uma mesa que fiz para mim. Ele é enorme, cabe cinco pessoas.
Eu não tenho o pior devbox, mas com um sinal de menos - tentei economizar e comprei uma porcentagem da AMD. Foi um fracasso terrível. Apesar do alto poder declarado, esse pedaço de merda executa meus testes às 5 !!! vezes mais lento que o equivalente da Intel.
Agora eu tenho apenas um monitor. Eu pretendo comprar mais um par para não desonrar. Meu IDE favorito é o Visual Studio 2017 em conjunto com o Resharper. Editor de texto favorito - Visual Studio Code em conjunto com um bilhão de extensões. Baixá-los e ver como o VSCode evolui é um dos meus hobbies.
Adoro o git, mas provavelmente gosto mais do Visual Studio Team Services do que do GitHub.
4. Por que princípio você escolhe um emprego? Pilha, produto, condições de vida, dinheiro?
- No momento, os principais fatores para mim são o pagamento e a capacidade de trabalhar para um terço das minhas habilidades. Parece-me que me queimei e não estou mais pronta para trabalhar ideologicamente para uma empresa. Mesmo o medo de ser demitido e perder meu modo de vida habitual não pode me fazer mergulhar fundo no projeto. E eu sou pai de um filho e meio - o medo é muito sério. Mas a uniformidade e a insensatez de tudo o que fiz agora me causam dor quase física.
Às vezes, parece-me que, com essa abordagem, não tenho o direito moral de procurar emprego. Justifico-me pelo fato de que em relação ao sistema é impossível ser moral ou imoral. A abstração das empresas ajuda a se distanciar do pensamento de que você pode prejudicar pessoas reais - portanto, trabalho apenas com grandes empresas.
Ao mesmo tempo, me confunde o tamanho do dinheiro que recebo pela minha cidade para uma solicitação de recebimento. Como se a alta habilidade do desenvolvedor me desse o direito de viver dez vezes melhor do que um monte de pessoas que, no suor de seus rostos, fazem um trabalho útil oito horas por dia.
Às vezes parece que, como consegui reproduzir o negócio em uma conta de previdência social, sou de alguma forma digno do que tenho. Por causa disso, perco o contato com a realidade, e começa a me parecer que é assim que deve ser.
Não sei como combinar isso, mas adoro desenvolver e odeio trabalhar como desenvolvedor. Estou tentando me assegurar de que não encontrei um projeto interessante, mas, ao mesmo tempo, não acredito nele. É realmente difícil conviver.
5. Quais tecnologias e idiomas que você usa você gostaria de corrigir?
- eu gostaria de:
- Inferência de tipo e imunidade em tempo de compilação para texto datilografado e C #. Então, eu poderia criar um método que aceite algo garantido como imutável, e não como agora - o ReadonlyDictionary, que não é realmente somente leitura (passou o dixnari usual para o construtor, deixou um link para ele e silenciosamente se modificou).
- Para que os desenvolvedores de C # enviassem finalmente para o inferno com compatibilidade com versões anteriores, usando-s malucos que funcionam apenas dentro de um arquivo e tornam o YaP mais moderno. Sério, em um idioma para o qual os códigos de estilo IDictionnary <IMyStupidType, IMyStupidType2> Foo (Func <IMySupidType, int, bool, string> códigos de estilo reallyStrangeCallback não são incomuns , é uma decisão muito estranha.
- Campos de suporte automáticos em C #, algum tipo de açúcar sobre Func <T1, T2> .
- Contratos para C # pronto para uso (por exemplo, em Roslyn) em vez de soluções de terceiros que transformam meu IDE em algo inibitório.
- Um análogo de jsx para a linguagem F #. Se nenhum de vocês fizer isso na próxima semana, que assim seja - eu atendo.
- Para que a comunidade perceba que os testes de unidade são lixo inútil, e os idiomas com digitação dinâmica (que não devem ser confundidos com os fracos) são a maior falha na história da indústria.
- Para que a arquitetura do processador seja mais projetada para uma abordagem funcional.
- Otimização da recursão de cauda em JS / TS para que eu possa descobrir minha recursão de cauda em qualquer lugar sem descansar minhas costas no tamanho da pilha. Há uma na especificação, mas os caras que viram a v8 apenas decidiram que não era tão importante seguir a especificação da linguagem ao desenvolver um tempo de execução para ela.
- Digitação estática opcional em JS fora da caixa, mas não em oposição ao texto datilografado. Ao contrário dos criadores do script de tempo, considero-o um YaP independente, com um design multiparadigma muito moderno e poderoso.
- Para fazer com que coisas como a montagem na Web tomem seu lugar firmemente nas práticas e padrões do desenvolvimento front-end.
- Melhoria significativa dos clientes Web do Github e similares. Idealmente, a capacidade de trabalhar confortavelmente com o código de um projeto sério no navegador.
- Mais convenções sobre compatibilidade. Quão mais fácil seria se o jvm fosse capaz de interpretar e jit-denotar cil.
6. Onde é melhor aprender com a experiência de outra pessoa - em uma universidade, em konfakh, em Habr? Em outro lugar?
- Estudei na universidade, mas fui expulso várias vezes. Estive em confissão, leio constantemente Habr. Não me parece que eu tenha aprendido algo útil com essas fontes. Bem, ou tenho o prazer de pensar que sim.
Meu objetivo é ler livros e fazer amizade com desenvolvedores. Eu acho que a maior influência sobre minhas habilidades foi causada pela comunicação com pessoas inteligentes que estão envolvidas no desenvolvimento.
7. Se você tivesse recursos ilimitados (tempo, dinheiro, poder, pessoas), qual projeto você adotaria?
- Seria ótimo fazer a simulação mais precisa possível do mundo humano, para que pudéssemos testar nele como levar a sociedade ao estado mais feliz. De qualquer forma, como se comportará em diferentes casos.
8. Como você relaxa? O que você está fazendo além do trabalho?
"Ando pela floresta e penso, às vezes com cerveja, tocando violão e ocasionalmente jogando videogame." Eu diria que meu hobby é pensar e sonhar.
Eu tenho vários dos meus projetos com amigos. Gosto especialmente de lhes dar revisões de código passivamente agressivas (“você poderia oferecer motivação para usar uma decisão tão mal concebida?”) E observe como isso muda nosso relacionamento.
Às vezes eu faço todos os tipos de porcaria humanitária como uma entrevista. Começo constantemente a escrever livros, embora ainda não tenha terminado nenhum deles.
9. Conte cerca de três livros favoritos - educacional, popular ciência e ficção.
Treinamento - “CLR via C #”, de Jeffrey Richter. Tanto conhecimento sobre como um tempo de execução detalhado é organizado em um trabalho é uma descoberta real. Se você memorizar este livro, passará por qualquer conta da previdência social no Donneter. Eu também mencionaria as "Estruturas de Dados Funcionais", de Chris Okasaki. Não é muito útil do ponto de vista prático, mas ela voltou à minha fé em programação - a implementação de estruturas de dados me causa uma emoção metafísica.
Scientificpop - Não sei se o Code Complete pode ser considerado assim, mas gosto muito de relê-lo. O autor escreve coisas incrivelmente óbvias, e em todos os projetos em que trabalhei, por algum motivo, ninguém conseguiu seguir suficientemente esses princípios simples.
Artístico - "American Tragedy", de Dreiser. Eu nunca teria pensado que um monstro digital tão pragmático como eu possa simpatizar com uma garota abandonada e depois morta. Mas eu era empático, e isso me atingiu muito.
10. Se, bem diante de seus olhos, a IA acordar, o que você dirá a ele?
"Sugiro que ele projete inteligência artificial e depois compare qual é o melhor." Se o novo fosse melhor, eu pediria que ele projetasse inteligência artificial, e então ...
Se a IA fosse um codificador poderoso, eu a usaria para criar um argumento de ferro de que Golang é um beco sem saída no desenvolvimento da programação. Porque existem muitos holívoros na minha vida e não tenho um orçamento para estudar Golang para criar um bom argumento.
Bônus: faça qualquer pergunta a outro desenvolvedor.
- Estudando qual tecnologia você mais gostou no processo?