Sou artista, principalmente, apesar de me descrever como artista / físico. Embora eu possa fazer matemática, lidar com palavras e as coisas "lógicas" consideradas no lado esquerdo do cérebro, é um esforço e eu cometo erros, enquanto eu me saio bem e na maioria das vezes penso em termos daquelas coisas associadas ao lado direito do cérebro pensamento - relações espaciais, contexto holístico de quadro geral, etc. É claro que tudo isso é confuso, pois a teoria do cérebro direito-esquerdo é simplificada demais e nenhuma atividade mental é tão simples. No entanto, sinto que me encaixo bem com artistas, diretores de vídeo, chefs e outros tipos de pensamento não-verbal e criativo, enquanto a maioria das pessoas em "TI" ou engenheiros de software hardcore tem mentes que funcionam de maneira diferente, com atenção aos detalhes, mantendo muitos detalhes em mente ao mesmo tempo e fortes capacidades racionais e verbais.
Então, aqui estou eu, em um trabalho que está sendo pago para corrigir bugs exigentes e obscuros em um enorme enxame de software C ++, muito pesado em OO, e qualquer linha de código não faz sentido, a menos que eu tenha em mente outros vinte nomes de classes e métodos, relações entre eles, o fluxo de execução (muito parecido com espaguete) e outros detalhes.
Além disso, também sou bastante contra muitos dos estilos C ++ e OO contemporâneos. Quem escreveu esse código realmente bebeu o profundo OO e o Modern C ++ kool-ade. Acho que realmente torna o código muito mais difícil de seguir, muito mais difícil de decidir onde consertar ou alterar alguma coisa. Não sei se isso faz parte da diferença esquerda / direita (ou o que você quiser chamar) ou não.
Mas trabalho com C ++, eu preciso - as pessoas dependem de mim para receber minha renda. Quais são as dicas e técnicas para lidar com esta situação, para ser o mais eficaz possível para o meu empregador?
Respostas:
Tente se aprofundar no lado do design, em que estar confortável com a imprecisão é um ponto forte seria minha sugestão em termos de progressão na carreira. Como alguém que gosta de ser criativo, trabalhar na manutenção pode não ser uma boa opção, enquanto trabalhar em coisas novas pode ser melhor se isso for possível.
Embora não haja nada de errado em querer algum orgulho no trabalho, querer não se atolar nos detalhes pode ser algo que talvez você precise encontrar uma nova abordagem para melhorar. Em vez de encará-lo como algo desagradável, pode haver outra perspectiva que possa torná-lo divertido de alguma forma.
O suporte e a manutenção provavelmente têm seus fãs, pois algumas pessoas preferem ajustar os sistemas existentes do que instalar um novo sistema. Sei que costumo trabalhar melhor com um sistema existente que estou mudando, em vez de tentar extrair algo do éter.
O que você pode tentar fazer é observar quando as pessoas desejam idéias para lidar com vários pontos problemáticos e soluções de brainstorm, pois isso faz parte do que você gosta. Não se trata de saber quais linhas de código mudar, mas se você pode dizer a alguém: "Você olhou nesse objeto e viu se ele está fazendo mais do que afirma?" tipo de coisa.
Outro ponto é saber o que você deseja criar: Gráficos, aplicativos, sites, processos ou sistemas? Essas são coisas um pouco diferentes que, ao criar, você pode ser solicitado a "Criar o quê?"
fonte
Não parece (pelo menos para mim) que seu código é particularmente orientado a objetos ou particularmente semelhante ao "Modern C ++". Pelo contrário, um dos elementos- chave da boa orientação a objetos é o encapsulamento, cuja principal intenção é reduzir o número de coisas que você precisa acompanhar a qualquer momento. Da mesma forma, "muito parecido com espaguete ... fluxo de execução" não soa orientado a objeto nem moderno (qualquer coisa).
Agora, suponho que se eu olhasse para o código que você está mantendo, talvez o veja de maneira diferente e / ou você veja meu código como sendo semelhante ao que está mantendo agora - é um pouco difícil de adivinhar. É verdade que, se você tentar rastrear todos os detalhes de como meu código funciona, suponho que você possa vê-lo como um fluxo de controle bastante parecido com espaguete.
Apenas por exemplo, gosto muito (ou pelo menos é tolerante) de algumas conversões implícitas do que muitos programadores - eu uso coisas como classes de proxy bastante. Isso significa que pode haver facilmente três ou quatro objetos temporários de tipos diferentes criados durante a chamada de uma única função (e observe que não estou falando de realmente executar a função, apenas chamá- la). Obviamente, todos esses objetos temporários serão destruídos novamente no final da expressão que contém a chamada de função. Se você contar, pode facilmente ter meia dúzia ou mais de funções separadas invocadas ao chamar / retornar de uma função que é "visivelmente" chamada no código.
O objetivo de fazer as coisas dessa maneira, no entanto, é tornar mais fácil ignorar a maioria das trivialidades envolvidas (por exemplo) em lidar com detalhes como a forma como um objeto específico é representado, e concentrar-se apenas no que realmente é . Você só precisaria lidar com a maior parte desse código se visse um bug nessa parte específica. Tento evitar muito disso, no entanto, criando classes tão pequenas e simples, que fazem tão pouco, que é preciso apenas um olhar para perceber que é obviamente correto, por isso é fácil ignorar a partir de então.
fonte
Atenção : esta resposta é muito longa e tem muitas psicobabrações (o que tento explicar, mas ainda assim). O que posso dizer? A psicologia é um dos meus assuntos favoritos fora da programação.
Na verdade, isso se baseia em uma visão um pouco ultrapassada da neurociência. A certa altura, os cientistas acreditavam que o cérebro esquerdo era responsável apenas pela lógica e pelos dados sensoriais brutos, enquanto o cérebro direito era o único responsável pela intuição e pelo sentimento. Como se vê, o cérebro esquerdo é realmente capaz de tudo o que é o cérebro direito e vice-versa. Como alguém extremamente inteligente, mas lógico, terrível com orientações e orientação espacial e completamente desprovido de qualquer criatividade artística tradicionalmente associada ao cérebro direito, posso atestar isso.
A melhor maneira de pensar na diferença entre o cérebro esquerdo e o direito é pensar nelas como imagens espelhadas uma da outra. Para entender isso, você precisa de alguns dados em segundo plano. Um psicólogo chamado Carl Jung criou uma teoria da personalidade nos anos 20 que dividia a personalidade em duas dimensões. Você provavelmente já ouviu falar de um deles: introversão vs extroversão. Eu escrevi alguns posts no blog sobre esse assunto, mas basicamente se resume a isso: a introversão se diferencia dos outros enquanto a extroversão se concentra em como ele pode se conectar aos outros. Isso é chamado de "atitude".
Então você tem quatro funções cognitivas diferentes: pensamento, sentimento, sensação e intuição. Por uma questão de simplicidade, digamos apenas que duas dessas funções são consideradas funções de "julgamento" (pensamento e sentimento), enquanto as outras duas são funções de "percepção". As funções de julgamento tomam decisões. Quando você está em uma mentalidade de julgamento, você está tentando evitar surpresas. Você deseja tomar todas as decisões corretas com antecedência, para não precisar se adaptar quando surgirem surpresas. Como você já fez tanto planejamento com antecedência, pode ter uma tendência a se tornar rígida e inflexível quando a decisão for tomada. Por outro lado, uma mentalidade de percepção tende a preferir voar pelo assento da calça e rolar com os socos.
Geralmente, você combina a função e uma atitude para criar uma (denominada de forma criativa) uma função-atitude (pensamento introvertido, sentimento extrovertido, etc.). As personalidades conscientes das pessoas são definidas principalmente por uma atitude funcional dominante e uma função funcional auxiliar. Eventualmente, os psicólogos chegaram a um consenso de que existem amplamente dois tipos de pessoas: pessoas cujas duas funções principais consistem em uma função de julgamento introvertida e uma função de percepção extrovertida ou pessoas cujas duas funções principais consistem em uma função de julgamento extrovertida e uma função de percepção introvertida . Se você já fez o MBTI ou teste de personalidade semelhante, a última letra informa em qual categoria você se enquadra. Se você é um P, significa que você é um julgador introvertido / percebedor extrovertido e J é o contrário.
Ainda comigo até agora? Aqui é onde eu entendo o que eu quis dizer com os dois lados sendo imagens espelhadas um do outro. Ninguém percebeu isso na época, mas eles estavam essencialmente construindo um esboço de onde a funcionalidade está no cérebro. De fato, cada uma das atitudes-funções de Jung foi mapeada para uma localização aproximada no cérebro. Como se vê, todas as funções P (julgamento introvertido e percepção extrovertida) estão no lado direito do cérebro e as funções J estão no lado esquerdo do cérebro.
Sempre que você diz que pessoas de cérebro esquerdo são bons em detalhes e pessoas de cérebro direito são boas no "quadro geral" (embora eu diria que "o quadro inteiro" seria mais preciso), você se concentra no lado extrovertido das coisas . Se uma pessoa de cérebro esquerdo administra uma pessoa de cérebro direito, o canhoto vai querer saber todos os detalhes sobre como o poderoso vai fazer seu trabalho antecipadamente e com antecedência. Eles querem que os requisitos sejam definidos em pedra e prazos rígidos sejam decididos com antecedência. Os justos querem apenas uma idéia muito ampla do que precisam fazer para preencher os detalhes mais tarde.
No entanto, observe que isso não parece não ser o que você está enfrentando. Parece que o código dos esquerdistas provavelmente não foi muito bem pensado com antecedência e tem alguns problemas que poderiam ter sido evitados por alguma premeditação. Isso ocorre porque, quando você cria modelos abstratos de coisas como código em sua cabeça, está usando sua função introvertida , que funciona ao contrário. O destro quer construir esse modelo com antecedência e fazê-lo de tal maneira que ele preenche todos os detalhes necessários ou facilmente pode preencher todos os detalhes. Além disso, eles podem se tornar rígidos em termos da melhor abordagem a ser adotada (observe que você está adotando uma linha dura sobre como se sente sobre os recursos mais avançados do C ++). O modelo dos esquerdistas será mais ad hoc e preenchido à medida que avançam.
Minha experiência é que, por causa disso, os canhotos acusarão os demais de projetar demais tudo, enquanto os canhotos acusarão os canhotos de serem muito rápidos e sujos. Ambos os lados têm um pouco de verdade para eles, mas somente quando essa abordagem é levada ao extremo. Aqui está o que é engraçado: eles estão adotando abordagens opostas para alcançar o mesmo objetivo (ou seja, fazer as coisas). Os destros querem que seu modelo seja decidido com antecedência, para que possam gastar menos tempo implementando a coisa e, portanto, concluindo todo o projeto mais cedo. Os esquerdistas querem gastar menos tempo arquitetando para que possam fazer as coisas mais cedo.
Aliás, essas duas atitudes são revertidas quando se trata de coisas do tipo gerenciamento de projetos (determinação de prazos, criação de requisitos etc.). Isso pode levar a uma situação realmente confusa, em que um lado acusa o outro de ser muito rígido, enquanto o outro afirma que o outro lado não está planejando com antecedência suficiente, e então o próximo argumento tem os dois lados adotando a posição exatamente oposta.
O que você pode fazer sobre tudo isso? Nada além de estar ciente dessas diferenças e tentar acomodar a visão do outro lado, tanto quanto possível. O problema, porém, é que isso acontece nos dois sentidos. Você pode entender e acomodar os esquerdistas o máximo possível, mas isso não fará muita diferença, a menos que eles estejam tentando retribuir o favor. Este é sempre o desafio. Não porque os canhotos sejam idiotas e queiram tornar a vida dos canhotos miseráveis, mas porque os canhotos estão acostumados a ser dominantes no campo da programação. Se o seu modo de pensar foi ecoado por praticamente todo mundo, você estaria convencido de que também está correto.
fonte
Confie na sua intuição. Se você é um bom profissional, isso significa que, independentemente do seu "cérebro" - esquerdo ou direito - coisas que os esquerdistas fazem conscientemente, você pode fazer intuitivamente. No final, é a mesma coisa. Infelizmente, não controlamos nosso subconsciente, mas ele faz o trabalho mais rápido que a nossa consciência, se é que o faz. Essas idéias intuitivas surgidas do nada são exatamente os resultados de cálculos subconscientes.
Ah, e você pode falhar, é muito confiável. Mas desde que você perguntou ...;)
fonte
Penso visualmente também e os detalhes da tipografia me atormentam.
Termos do Google: site britânico sobre dislexia também Estilos de aprendizagem: pensamento espacial visual, aprendizagem parcial ou parcial.
Conceitos Primeiro, Dicas Depois
Dicas que me ajudaram:
Qual seção corrigir a seguir?
Meu fluxo de trabalho
Quem mora ali? (processo, conexões, dados, etc.)
o que eles precisam fazer? (função) OK
Está bem
codificá-lo em algum lugar, pode ser sintaxe / verificação ortográfica OK copiar e colar
Teste
Resultado -> Funciona? Sim, continue
Não? Os personagens devem estar representando Hamlet, onde todos morrem.
Retornar ao ambiente
fonte