Pessoal, andei dando uma olhada nas certificações e me surgiu uma dúvida um pouco filosófica:
Qual é a diferença real entre programador, desenvolvedor e arquiteto de software (tanto em Java quanto em outras linguagens).
Obrigado,
abraços!
Pessoal, andei dando uma olhada nas certificações e me surgiu uma dúvida um pouco filosófica:
Qual é a diferença real entre programador, desenvolvedor e arquiteto de software (tanto em Java quanto em outras linguagens).
Obrigado,
abraços!
Boa pergunta cara…
Pragramador e Desenvolvedor parece ser a mesma coisa…mas Arquiteto já parece ser algo diferente…
Mas real diferença mesmo eu não sei qual é não!
Pessoal, andei dando uma olhada nas certificações e me surgiu uma dúvida um pouco filosófica:Qual é a diferença real entre programador, desenvolvedor e arquiteto de software (tanto em Java quanto em outras linguagens).
Obrigado,
abraços!
Acredito, nao tenho certeza, que programador é aquele que apenas codifica enquanto que o desenvolvedor planeja e analisa, ou seja, faz os famosos diagramas UML, tbm pode trabalhae com Q.A. (Quality Assurance). Arquiteto, uaaau, no idea.
Programador = Desenvolvedor
Arquiteto
programador segue uma especificacao notória de implementação, já o desenvolvedor pode fazer o mesmo, buscando o design para melhor solução para um determinado problema técnico necessário, bem como um requisito não-funcional do sistema, podendo até desenvolver um componente para isto.
o arquiteto tem atuação sublime sob os dois acima, intervindo em diversas fases do desenvolvimento de um software. praticamente coloca o dedo em tudo que é canto. uma visão geral pelo rup pode se visualizar algumas possíveis responsabilidades do arquiteto.
Vou simplificar: O todo está dividido em dois grupos, o grupo dos que tenta fazer um bom trabalho e o grupo dos que tenta impedir o bom trabalho de ser feito.
flws
Acredito que seja:
Programador - Por definição é uma pessoa que conhece bem uma linguagem de programação,
mas não tem muitos conhecimentos relativo a modelagem, se for dado um monte de
diagramas UML para ele executar ele não conseguiria…
Desenvolvedor - Ele tem todos os conhecimentos do programador mais uma bagagem com relação a modelagem,
um bom entendimento de UML… Mas não tem uma bagagem de padrões de projeto.
Ao contrário do programador se passar para ele somente os digramas este consegue se virar.
Arquiteto - Além de ter um bagagem muito grande com modelagem, conhecimentos de padrão de padrões
de projeto, ainda deve conhecer a infra-estrutura onde a aplicação vai ser disposta…
Podem verificar estas afirmações pelo conteúdo das provas de certificação da sum.
[color=red]Acredito que a pessoa só é um programador bem nó inicio de sua carreira… ou se trabalha em uma fabrica somente montando sistemas… [/color]
Eu já trabalhei em uma empresa, onde se existiam “analista de sistemas” a justificativa do
gerente era que todos tinham que fazer as mesmas coisas ou seja se for pedido a um programador para
fazer um diagrama de classe de um sistema, este poderia recusar dizendo que não é uma tarefa dele.
Acredito que seja:Programador - Por definição é uma pessoa que conhece bem uma linguagem de programação,
mas não tem muitos conhecimentos relativo a modelagem, se for dado um monte de
diagramas UML para ele executar ele não conseguiria…Desenvolvedor - Ele tem todos os conhecimentos do programador mais uma bagagem com relação a modelagem,
um bom entendimento de UML… Mas não tem uma bagagem de padrões de projeto.
Ao contrário do programador se passar para ele somente os digramas este consegue se virar.Arquiteto - Além de ter um bagagem muito grande com modelagem, conhecimentos de padrão de padrões
de projeto, ainda deve conhecer a infra-estrutura onde a aplicação vai ser disposta…Podem verificar estas afirmações pelo conteúdo das provas de certificação da sum.
Muito boa a sua classificação. Só diria quero fazer um ressalva. Desenvolvedores sim sabem padrões de projeto. Aliás é isso que os define. Não é possível desenvolver ( ou seja , evoluir uma ideia básica) sem conhecimento de padrões. Além de os saberem os desenvolvedores os procuram e catalogam.
Arquiteto deve incluir os padrões descobertos pelos desenvolvedores. Isso é tanto mais relevante quando mais especificos do dominio os padrões são. Contudo a preocupação do arquiteto nunca é com os requisitos funcionais do sistema e sim com os não funcionais. Performance , escalabilidade, disponibilidade, etc… são as preocupações do arquiteto. O arquiteto por definição deve conhecer várias tecnologias que permitam alavancar esses medidas.
Os arquitetos montam uma estrutura macro a que o sistema tem que obdecer por causa dos requisitos não funcionais. Isso vai desde o tipo de banco, comunicação de rede, tecnologias de middleware , até comos como usabilidade da interface gráfica. O codigo interno da aplicação é quase uma caixa negra para o arquiteto a maior parte do tempo.
O desenvolvedor é responsável por incluir os requisitos funcionais. Pegar o modelo de dominio levantando e dar-lhe “vida” criar qualquer classe ou camada necessária para integrar esse domínio com a estrutura definida pelo arquiteto.
O programador escreve o código da forma mais eficiente possível. (eficiente = clara + performática). Ele é o especialista na linguagem. Os outros são especialistas na plataforma e frameworks.
A idéia de que todos o arquiteto teve que ser desenvolvedor que teve que ser programador é boa, mas não é essencial.
É como dizer que todos o gerente deve ter sido programador. Isso normalmente só atrapalha porque a pessoa ainda pensa como pensava à X anos atrás quando programava com uma tecnologia que não existe mais.
Cada um na sua posição. Tem pessoas que adoram escovar bits (programador) mas acham um saco falar com o cliente e levantar requisitos (arquiteto) ou adoram modelar OO mas odeiam programar …
Ou seja, não é uma escala, são trabalhos diferentes.
Acredito que seja:Programador - Por definição é uma pessoa que conhece bem uma linguagem de programação,
mas não tem muitos conhecimentos relativo a modelagem, se for dado um monte de
diagramas UML para ele executar ele não conseguiria…
Este profissional ainda existe?
Acredito que seja:Programador - Por definição é uma pessoa que conhece bem uma linguagem de programação,
mas não tem muitos conhecimentos relativo a modelagem, se for dado um monte de
diagramas UML para ele executar ele não conseguiria…Desenvolvedor - Ele tem todos os conhecimentos do programador mais uma bagagem com relação a modelagem,
um bom entendimento de UML… Mas não tem uma bagagem de padrões de projeto.
Ao contrário do programador se passar para ele somente os digramas este consegue se virar.Arquiteto - Além de ter um bagagem muito grande com modelagem, conhecimentos de padrão de padrões
de projeto, ainda deve conhecer a infra-estrutura onde a aplicação vai ser disposta…Podem verificar estas afirmações pelo conteúdo das provas de certificação da sum.
[color=red]Acredito que a pessoa só é um programador bem nó inicio de sua carreira… ou se trabalha em uma fabrica somente montando sistemas… [/color]
Eu já trabalhei em uma empresa, onde se existiam “analista de sistemas” a justificativa do
gerente era que todos tinham que fazer as mesmas coisas ou seja se for pedido a um programador para
fazer um diagrama de classe de um sistema, este poderia recusar dizendo que não é uma tarefa dele.
E naqueles lugares onde não se utiliza UML ??
E naqueles lugares onde ainda se usam sistemas feitos em Clipper ou Cobol? Quais padrões de projeto o arquiteto - se é que existe - definiu para esses sistemas??
Arquiteto
Aaquele cara que ganha R$ só com a idéia, sem precisar digitar uma linha de código.
Programador/Desenvolvedor
Quem vai desenvolver a lógica da aplicação, implementando o software segundo àquilo que foi definido pelo programador.
De forma análoga:
Arquiteto…Mestre de Obras
Programador/Desenvolvedor…Pedreiro (peão)
E não podemos esquecer dele: o [color=red]Estagiário[/color] (ajudante de pedreiro - o peãozaço mesmo!!)
Em outras palavras: quem bota as pedras no ombro é o estagiário, o programdor apenas modela para fazer a casa (soft) que o arquiteto vai vender!!
Abrçaos
Caramba, todo mundo aqui tem uma definicao diferente … :?:
É verdade, mas fazendo uma média de tudo se pode ter uma idéia…
Só tem uma coisa, não se pode subestimar estagiários, programadores, desenvolvedores ou arquitetos, cada um vende o seu peixe.
Parece que todos se odeiam, mas ao contrário, um precisa do outro, tenham consciência disso!
Acredito que seja:Programador - Por definição é uma pessoa que conhece bem uma linguagem de programação,
mas não tem muitos conhecimentos relativo a modelagem, se for dado um monte de
diagramas UML para ele executar ele não conseguiria…Desenvolvedor - Ele tem todos os conhecimentos do programador mais uma bagagem com relação a modelagem,
um bom entendimento de UML… Mas não tem uma bagagem de padrões de projeto.
Ao contrário do programador se passar para ele somente os digramas este consegue se virar.Arquiteto - Além de ter um bagagem muito grande com modelagem, conhecimentos de padrão de padrões
de projeto, ainda deve conhecer a infra-estrutura onde a aplicação vai ser disposta…Podem verificar estas afirmações pelo conteúdo das provas de certificação da sum.
[color=red]Acredito que a pessoa só é um programador bem nó inicio de sua carreira… ou se trabalha em uma fabrica somente montando sistemas… [/color]
Eu já trabalhei em uma empresa, onde se existiam “analista de sistemas” a justificativa do
gerente era que todos tinham que fazer as mesmas coisas ou seja se for pedido a um programador para
fazer um diagrama de classe de um sistema, este poderia recusar dizendo que não é uma tarefa dele.E naqueles lugares onde não se utiliza UML ??
E naqueles lugares onde ainda se usam sistemas feitos em Clipper ou Cobol? Quais padrões de projeto o arquiteto - se é que existe - definiu para esses sistemas??
sergiotaborda:
Ou seja, não é uma escala, são trabalhos diferentes.
Tb acho que deveria ser assim, mas na prática não é. Acredito na analogia Engenheiro, Pedreiro e Servente. Na faixa salarial tb.
Ninguém falou onde o Analista de Sistema se encaixa aí…
sergiotaborda:
Ou seja, não é uma escala, são trabalhos diferentes.
Tb acho que deveria ser assim, mas na prática não é. Acredito na analogia Engenheiro, Pedreiro e Servente. Na faixa salarial tb.
Enquanto acreditar nisso , será isso.
Não se encaixa. Analista não mexe com código ou tecnologia. Ele apenas faz o levantamento dos requisitos (ou seja, analisa o que o cliente quer).
a pergunta no seria: " E existe padroes qdo se desenvolvia nas linguagens citadas?"
Naquela epoca o maximo que o cara fazia era um rascunho no papel, o restante era sentar na frente da maquina e sair programando o que vinha em mente depois colcoar a ideia de um, mudava o codigo ali e aqui… etc… poderia ocorrer exceções em grandes empresas que poderia usar um projetivo dos pontos chaves que o sistema teria… mais usar os padroes de projeos, a ideia de UML como é cobrado hoje… acredito que era dificil…
Sim, mas esses caras ainda existem, apesar de eu não vê-los com tanta freqüência ele existem certo?? Como classificar uma pessoa que não sabem UML e nem lida com padrões de projeto como conhecemos ?? Arquiteto? Analista? Programador? Pedreiro??
Aquele nerdizinho que escova bits e está trancafiado a alguns anos no porão de algum banco e fazendo o seu cobolzinho do dia a dia?? rs
Eu trabalhei com uma pessoa que estava a 20 anos em uma mesma empresa e ele dava manutenção em um sistema para um cliente a alguns anos, o sistema todo em VB… e a empresa gostava do trabalho do cara, e só queria que esta pessoa atendesse ele, caso contrário a nossa empresa corria o risco de perder o contrato de manutenção…
O que eu quero dizer é que qualquer classificação é burra e não pode agrupar todo mundo… e pra mim também tanto faz como o cara se classifica, pra mim importa o que ele sabe e o contra-cheque no final do mês… rs
:shock:
[list]Programador: Aquele que Programa[/list]
[list]Desenvolvedor: Aquele que Desenvolve[/list]
[list]Arquiteto: Aquele que Arquiteta[/list]
Re re rewm!!!

sergiotaborda:
Ou seja, não é uma escala, são trabalhos diferentes.
Tb acho que deveria ser assim, mas na prática não é. Acredito na analogia Engenheiro, Pedreiro e Servente. Na faixa salarial tb.
Enquanto acreditar nisso , será isso.
O que fazer se o mercado é assim?
ok, mas existem os chamados Analistas de Negócio, Analista de Sistemas, bla, bla, bla…
Na prática só trabalhando pra saber o que vão colocar no teu colo. Computação é a única área que agrega funções como Analista Desenvolvedor, Analista Programador, etc… Isso é só pra pagar um salário só e ter duas ou mais funções.
sergiotaborda:
Ou seja, não é uma escala, são trabalhos diferentes.
Tb acho que deveria ser assim, mas na prática não é. Acredito na analogia Engenheiro, Pedreiro e Servente. Na faixa salarial tb.
Enquanto acreditar nisso , será isso.
O que fazer se o mercado é assim?
O mercado não existe ( não e´uma pessoa com "quereres").
É a lei da oferta e da procura. Se o cara procura um Pedreiro mas o mercado so oferece Engenheiros, ele terá que se contentar com isso. Ou ele desiste, ou ele contrata o eng para fazer o trabalho do pedreiro (*) ou ele forma um pedreiro a seu gosto pegando um aprendiz ( aka trainee , aka estagiário, aka generico).
Mas se o mercado oferece um pedreiro,ele pega esse e se o pedreiro for esperto o cara irá pagar bem por ele (porque só ha um)
Se o mercado so oferece pedreiros ele pode escolher à vontade e pagará pouco por cada um.
É vc que faz o mercado. Se todos pensarem como vc então teremos muitos pedreiros a baixo preço.
Agora pense ao contrário. Cada um faz o seu trabalho e pronto. Então quando contrata tem que pensar bem quem irá escolher.
O problema no nosso ramo é que o cara contrata um pedreiro para fazer trabalho de eng achando que tem vantagem porque irá pagar menos. O pedreiro aceita receber menos que um eng para fazer o trabalho dele sob a desculpa que "tem menos experiencia".
Mas o patrão não tá nem ai para a experiencia ele quer resultados. Obviamente eles não vão aparecer e o pedreiro será culpado. (aka despedido). Se o pedreiro continuar se sujeitanto a estas condições os eng nunca serão escolhidos. Por isso o trabalho sempre sairá um merda ( porque é feito por pessoas não qualificadas) e em breve toda a area é vista com olhos suspeitos. Por isso, os salários de todos descem e todos se f@#$@# juntos.
Se vc é contratado para fazer um trabalho que não é o seu vc deve pedir mais dinheiro porque
Se cada um pensar antes de agir é uma questão de tempo até inverter a situação.
Mas se cada continuar aceitando fazer trabalhos para os quais não está qualificado ele vai ganhar cada vez menos.
eu vejo assim:
tu, pessoa, tens um nivel de conhecimento que ter permite desenpenhar N papeis em uma empresa.
a emprea te contrata para 1 papel especifico. Então tens duas opções:
Então tu, contigo mesmo, te consideras X. Tens preferencia por exercer a função de X.
Se te dão a função Y < X ( ou seja, uma que ja´exerceste no passado mas que não te importa muito hoje) é bom que ela pague melhor que X pois contrario não ha recompensa para ti. Se te dão Y > X ( uma que nunca fizeste ) é bom que ela pague melhor porque ha um risco associado a fazer coisas pela primeira vez.
Agora tu dizes: mas eu pego o primeiro que aparecer por preciso do trampo para pagar as contas. Beleza.
Então suponhamos que pegas Y > X. O cara vai dizer que tu não tens experiencia de Y só de Z ( Z < X < Y ) e portanto vai-te pagar menos. Se tu aceitas isto, aceitas ser explorado. Se aceitas se explorado não de podes queixar depois quando o cara te despedir por incompetencia ou fizer de ti um bode expiatório. O ponto é que estejas consciente que estás tomando um atitude contrária ao tem proprio bem e ao bem da profissão. Estás contribuindo para que a profissão seja enxergada como "ruim" e portanto não merece ser paga corretamente. Isso leva à exploração de outros que aceitam a mesma coisa. Forma-se um ciclo de experial que leva a profissão à ruina.
não estou dizendo que não aceites, estou dizendo que deves ter consistência do que estás aceitando.
Na próxima oportunidade, muda para outra coisa mais próxima de X.
Sergio,
Concordo com vc e eu procuro agir da forma correta. O que eu quis dizer é que as empresas não vêem os trabalhos desse profissionais como trabalhos diferentes, Na prática é uma escala sim. Normalmente o cara começa como trainee, depois programador júnior, pleno senior, etc. até arquiteto.
Não estou dizendo que é o certo o programador junior desenvolver um sistema sozinho decidindo até a arquitetura (se bem que já aconteceu comigo), mas é o que acaba acontecendo infelizmente. E, infelizmente, aprendí isso na cabeçada.
Abraço,
Então vamos lá…
Antigamente, rsrsr a alguns anos atráz tinhamos as profissões:
Programador. (Somente Executava)
Analista-Programador. (Levantava Requisitos, Planejava, Executava)
Analista de Sistemas. (Planejava, entendia muito do negócio e geralmente coordenava uma equipes)…
E vale lembrar, que um Analista de Sistemas sempre foi visto como um “Analista de Négócios”…
Acredito que a profissão de analista de sitemas deu origem as profissões,
Analista-Programador e Analista de Sistemas… estão dando lugar para o Desenvolvedor e Arquiteto …
com as atribuições que já discutimos… e agora estamos vendo muinto nas empresas apostarem nos
papeis do “Analista de Requisitos” e “Analista de Négócios”…
Tentando responder a pergunta do André Fonseca, quando não se usava UML… utilizavam,
e ainda utilizam os famosos DFD e os DER… Que para fazer um sistema pelo menos o mínimo de
planejamento deve existir…
De uma forma ou de outra sempre sempre teve uma pessoa planejando e outras executando…
Por experiência própia constatei isso:
Programador / Desenvolvedor / Arquiteto
Faz de tudo analisa desenha, implementa e em muitos casos ate testa.
Programador: Pode fazer de tudo, mas como não tem superior completo ganha esse título e menos $ que os demais.
Desenvolvedor: Faz de tudo, ganha esse título justamente por isso, senão teria um titulo mais especifico como Analista Programador ou Analista de Testes.
Arquiteto: Sabe fazer de tudo, profissional senior a muito tempo que se enquadra em um perfil mais técnico. Senão teria passado para gerencia de projetos ou arêa de negócios.
No fim das contas são títulos mais utilizados para classificar faixa $$$$.
Alguém discorda???
Por experiência própia constatei isso:Programador / Desenvolvedor / Arquiteto
Faz de tudo analisa desenha, implementa e em muitos casos ate testa.Programador: Pode fazer de tudo, mas como não tem superior completo ganha esse título e menos $ que os demais.
Desenvolvedor: Faz de tudo, ganha esse título justamente por isso, senão teria um titulo mais especifico como Analista Programador ou Analista de Testes.
Arquiteto: Sabe fazer de tudo, profissional senior a muito tempo que se enquadra em um perfil mais técnico. Senão teria passado para gerencia de projetos ou arêa de negócios.
No fim das contas são títulos mais utilizados para classificar faixa $$$$.
Alguém discorda???
Concordo com vc.
Desenvolvedor e programador pra mim eh a mesma coisa, aqui na minha empresa nao tem ng com o cargo de programador os “programadores” tem o cargo de desenvolvedor.
Aqui os desenvolvedores sao os caras que codificam, so se dedicam a isso. A unica coisa extra que nos fazemos eh resolver algum coisa de suporte quando a equipe de suporte nao resolve.
Os arquitetos fazem basicamente a mesma coisa (desenvolvimento/ problemas de suporte mais complicados) porem eles sao responsaveis pela arquitetura do sistema, design banco de dados, classes, etc.
Pra falar a verdade eu nao acho que eles criam essas classificacoes para pagar mais ou menos, eu acredito que uma empresa que tem um programador ganhando X se mudassem o cargo pra desenvolvedor seria o mesmo valor X. Eh so um nome mais bonito.
//Daniel
Na minha opinião essa dúvida sempre vai gerar polemica pelo fato de não terem feito ainda algum tipo de “regulamentação” ou concenso no mercado do que venha a ser e quais seriam as obrigações e deveres de cada um destes profissionais. Não estou dizendo que isso tenha que ser feito e que essa seja a resposta.
Mas por que sempre aparecem essas dúvidas? Na minha opinião, são “sombras” de velhos paradigmas vindas da época em que os computadores eram enormes, caríssimos e difíceis de “operar” (comparando com os dias de hoje), para tocar em um equipamento daqueles precisava ter patente e/ou cargo bem definido, vamos dizer assim, isso sem falar das rigidas estratégias de construção das soluções (comparando com os dias de hoje) pois houve um dia que computadores não tinham nem monitores e por serem muito caros os erros tinha que ser evitados a todo custo.
Logo surgiu os microcomputadores (PC = Personal Computer => COMPUTADOR PESSOAL), a primeira intenção era para serem utilizados EM CASA e não na industria, e a segunda intenção era para ser uma coisa interessante que qualquer “bobo” conseguisse utilizar, só que, subtamente, a coisa saiu da cozinha e foi parar dentro da industria, foi também para outro lugar mas a idéia de que “qualquer um” poderia “mexer” continuou e deste então estes microcomputadores tem evoluido e ficado mais sofisticados só que QUESTÕES HUMANAS relacionadas a definições a respeito de QUEM, NÍVEL, PATENTE, CARGO etc… deva utilizar essas máquinas foram dexadas de lado, vamos dizer assim.
Resumindo…os microcomputadores estão dentro da industria e nas casas cumprindo seu papel (QUALQUER UM PODE/TEM CONDIÇÕES DE “MEXER”) e ninguem disse que pra fazer tal coisa tenha que ser programador, desenvolvedor, arquiteto ou sabe se mais o que como no “passado”.
Minha sugestão é a seguinte: esqueça as patentes, as fronteiras, os limites e tente fazer o trabalho da melhor maneira possível. Você vai deixar de dar uma sugestão ou fazer uma critica construtiva sobre uma arquitetura só porque vc é “PROGRAMADOR”? Essa é umas das idéias mais antigas e antiquadas que existe…
Desculpem ai o texto grande rsrsrsrsr
flws
É incrivel como tem gente que confunde desenvolvedor com analista…
Explicando:
((desenvolvedor == programador) != analista) != arquiteto
fui claro?
É incrivel como tem gente que confunde desenvolvedor com analista…Explicando:
((desenvolvedor == programador) != analista) != arquitetofui claro?
Não muito…
Pela tua afirmação um programador pode ser igual a um arquiteto.
É incrivel como tem gente que confunde desenvolvedor com analista…Explicando:
((desenvolvedor == programador) != analista) != arquitetofui claro?
:shock:
:shock: :shock:
De forma análoga:
Arquiteto…Mestre de Obras
Programador/Desenvolvedor…Pedreiro (peão)
Colocaria um pouquinho diferente…
Arquiteto…Engenheiro
Desenvolvedor…Mestre de Obras
Programador…Pedreiro(peão)
De forma análoga:
Arquiteto…Mestre de Obras
Programador/Desenvolvedor…Pedreiro (peão)Colocaria um pouquinho diferente…
Arquiteto…Engenheiro
Desenvolvedor…Mestre de Obras
Programador…Pedreiro(peão)
Faltou:
*Analista de sistemas…Arquiteto (de obras)
Arquiteto…Engenheiro
Desenvolvedor…Mestre de Obras
Programador…Pedreiro
*Micreiro…Auxiliar de servente
Programador e desenvolvedor eh a mesma coisa.
Alguem que pensa o contrario, explica ae qual a diferenca.
//Daniel
Programador e desenvolvedor eh a mesma coisa.
Alguem que pensa o contrario, explica ae qual a diferenca.
Programador éra o cargo utilizado até os anos 90 eu acho, só codificava e entendia de fluxogramas; o desenvolvedor tem que fazer tudo isso e também entender de analise.
P.S. Até os anos 90 cargos: digitador/perfurador, operador, programador, analista e gerente.
Programador e desenvolvedor eh a mesma coisa.
Alguem que pensa o contrario, explica ae qual a diferenca.Programador éra o cargo utilizado até os anos 90 eu acho, só codificava e entendia de fluxogramas; o desenvolvedor tem que fazer tudo isso e também entender de analise.
P.S. Até os anos 90 cargos: digitador/perfurador, operador, programador, analista e gerente.
Programador: Pessoa que escreve programas de computador.
Desenvolvedor: Pessoa que desenvolve programas de computador. (desenvolvimento engloba um pouco mais do que escrita do programa)
Arquiteto de software: Pessoa que idealiza e formaliza a estrutura de um programa de computador.
Projetista de software: Sinônimo para arquiteto de software.
Analista de sistemas: Pessoa responsável por definir e formalizar o que deve fazer um programa de computador.
Até julho estava na minha carteira de trabalho escrito “programador”, embora na prática eu fosse programador, desenvolvedor e arquiteto.
EDIT: Ah, e essas definições são independentes de como essas pessoas fazem o que devem fazer. Não importa se escrevem documentos, desenham fluxogramas ou diagramas UML, escrevem código, perfuram cartões ou seja lá o que for, ou seja, os cargos não dependem da metodologia utilizada (as metodologias são o meio, e não os fins).
Programador e desenvolvedor eh a mesma coisa.
Alguem que pensa o contrario, explica ae qual a diferenca.Programador éra o cargo utilizado até os anos 90 eu acho, só codificava e entendia de fluxogramas; o desenvolvedor tem que fazer tudo isso e também entender de analise.
P.S. Até os anos 90 cargos: digitador/perfurador, operador, programador, analista e gerente.
Nao estou convencido, nao estamos mais nos anos 90 e eu continuo vendo anuncios de programador, analista.
Ok. O que seria esse “um pouco mais do que escrita” ?? Porque eu sou desenvolvedor, maior parte do tempo eu so faco programacao as vezes eu dou uns palpites na arquitetura. Eu vou reclamar no rh da minha empresa que eu nao sou desenvolvedor eu sou programador entao. Eh isso ?
É incrivel como tem gente que confunde desenvolvedor com analista…Explicando:
((desenvolvedor == programador) != analista) != arquitetofui claro?
Claramente errado.
Desenvolvedor nao é a mesma coisa que programador.
Programador é uma coisa, Analista de Sistemas é outra e Desenvolvedor, outra. (As 2 primeiras em processo de extincao)
Se quiser enteder a diferença dos 2 sugiro ler as atribuições das seguintes certificações da Sun: SCJP e SCJD
PS: Nao vamos entrar aki em discussoes se essas certificacoes valem ou nao alguma coisa. Estamos falando apenas das atribuicoes
Programador e desenvolvedor eh a mesma coisa.
Alguem que pensa o contrario, explica ae qual a diferenca.Programador éra o cargo utilizado até os anos 90 eu acho, só codificava e entendia de fluxogramas; o desenvolvedor tem que fazer tudo isso e também entender de analise.
P.S. Até os anos 90 cargos: digitador/perfurador, operador, programador, analista e gerente.
Nao estou convencido, nao estamos mais nos anos 90 e eu continuo vendo anuncios de programador, analista.
Ok. O que seria esse “um pouco mais do que escrita” ?? Porque eu sou desenvolvedor, maior parte do tempo eu so faco programacao as vezes eu dou uns palpites na arquitetura. Eu vou reclamar no rh da minha empresa que eu nao sou desenvolvedor eu sou programador entao. Eh isso ?
Escrita de código + teste + documentação + treinamento de usuário + escrita de manual + arquitetura + manutenção + análise + qualquer outra coisa necessária. Mas 90% do trabalho é escrita de código.
Não, você não vai reclamar no RH por isso. O nome do cargo é o de menos, o que importa é se você exerce a função que lhe cabe e se receb uma remuneração de acordo com ela. Atualmente sou “analista de projetos e processos sênior” na minha carteira de trabalho. É um nome bem vago e amplo. No banco me cadastraram como “industriário” pelo simples fato de que trabalho em uma indústria, embora não exerço nenhuma atividade relacionada ao processo de produção industrial. O que faço na verdade: sou programador, arquiteto, desenvolvedor e provavelmnte em breve vou acabar dando uma de DBA e de analista também.
Como disse antes, “sombras” de velhos paradigmas…como ninguém definiu nada e o rh precisa de parametros para determinar o $ e outras coisa mais fica desse jeito :?
Acho que não, o importante é aprender, portanto quanto mais palpites melhor muito embora eu passei por uma empresa que até o trainee dava palpite nos projetos o efeito disso era que chegava uma hora que o trainee achava que tava “podendo muito” e começava a reivindicar posição e $, o RH não queria saber e o “coro comia” as vezes acabava em demissão ou em fuga, tem coisa que entendo mas não compreendo. :shock:
flws
Eu concordo com o victorwss Programar é diferente de desenvolver.
Programar é simplesmente utilizar a linguagem e as ferramentas para fazer o programa fazer alguma tarefa. Contudo o programador normalmente não decide a estrutura necessária para fazer a tarefa. Normalmente ele enxerga a tarefa apenas por ele mesma e não enxerga “the big picture” o desenvolvedor enxerga a big picture e minimiza o numero de classes, acoplamento, dependência, etc… de forma que o sistema faça as tarefas, mas elas sejam um organismo e não apenas um conjunto de codigo desconexo. O que diferencia o programador do desenvolvedor é este grau de abstração. Um programador vê códido, variáveis. Um bom programador vê até objetos , mas vê poucas relações entre eles. O desenvolvedor vê mais além ele vê padrões, estruturas, repetição de conceitos ( não apenas de tarefas) etc…
A arquiteto vê mais além ainda, ele vê tecnologias, custos , trade-offs, etc…
Acho que quando vc diz “palpites na arquitetura” vc quer dizer “palpites na estrutura das classes”- isso é coisa de desenvolvedor (não de arquiteto). O que distingue de um desenvolvedor de um programador, é que o programador dá palpites, enquanto o desenvolvedor tem que escolher e arcar com as conseqüências. O mesmo entre o desenvolvedor e o arquiteto.
O analista é um personagem que não faz nenhuma escolha tecnica - nenhuma - sendo apenas o trabalho dele levantar os requisitos. Principalmente ele tem que ter a certeza que o cliente não está ocultando informações relevantes e/ou que o cliente ignora as conseqüências dos seus requisitos.
Atualmente sou “analista de projetos e processos sênior” na minha carteira de trabalho. É um nome bem vago e amplo. No banco me cadastraram como “industriário” pelo simples fato de que trabalho em uma indústria, embora não exerço nenhuma atividade relacionada ao processo de produção industrial. O que faço na verdade: sou programador, arquiteto, desenvolvedor e provavelmnte em breve vou acabar dando uma de DBA e de analista também.
Sem comentarios… :shock:
Não muito…
Pela tua afirmação um programador pode ser igual a um arquiteto.
Na verdade pode… porem e voltado para programar coisas voltadas a tecnologia e não a negocios…
Não muito…
Pela tua afirmação um programador pode ser igual a um arquiteto.
Na verdade pode… porem e voltado para programar coisas voltadas a tecnologia e não a negocios…
((desenvolvedor == programador) != analista) != arquiteto
Eu disse relativo a essa tua afimacao de igualdades e diferencas, porque é afirmado que desenvolvedor e programador sao diferentes que arquiteto, mas nao diz nada da relacao de desenvolvedor e programador com arquiteto (só afirma que arquiteto é diferente de analista que é diferente de programador e desenvolvedor).
Atualmente sou “analista de projetos e processos sênior” na minha carteira de trabalho. É um nome bem vago e amplo. No banco me cadastraram como “industriário” pelo simples fato de que trabalho em uma indústria, embora não exerço nenhuma atividade relacionada ao processo de produção industrial. O que faço na verdade: sou programador, arquiteto, desenvolvedor e provavelmnte em breve vou acabar dando uma de DBA e de analista também.
Sem comentarios… :shock:
É. Isso é foda. Eu sei. Mas fazer o que…
Puxa vida! Multi funcional.
Mas isso acontece muito, vejo direto esse tipo de exerção de “MULTI-CARGOS” acontecendo por aqui também, infelizmente o mercado ainda tem pouca gente capacitada e tudo vai nas costas dos que são mais capacitados ou que mais sabem. É a vida!
Mas normalmente seus salários não são nada ruim, é ou não é Victor? =P
Abraços.
Higor
se o cara é multifuncional nada mais justo que um multisalario
((desenvolvedor == programador) != analista) != arquiteto
Eu disse relativo a essa tua afimacao de igualdades e diferencas, porque é afirmado que desenvolvedor e programador sao diferentes que arquiteto, mas nao diz nada da relacao de desenvolvedor e programador com arquiteto (só afirma que arquiteto é diferente de analista que é diferente de programador e desenvolvedor).
vc não viu os (( )) ???
((desenvolvedor == programador) != analista) != arquitetoEu disse relativo a essa tua afimacao de igualdades e diferencas, porque é afirmado que desenvolvedor e programador sao diferentes que arquiteto, mas nao diz nada da relacao de desenvolvedor e programador com arquiteto (só afirma que arquiteto é diferente de analista que é diferente de programador e desenvolvedor).
vc não viu os (( )) ???
vi
faca um teste:
desenvolvedor = false
programador = false
analista = true
arquiteto = false
((desenvolvedor == programador) != analista) != arquitetoEu disse relativo a essa tua afimacao de igualdades e diferencas, porque é afirmado que desenvolvedor e programador sao diferentes que arquiteto, mas nao diz nada da relacao de desenvolvedor e programador com arquiteto (só afirma que arquiteto é diferente de analista que é diferente de programador e desenvolvedor).
vc não viu os (( )) ???
vi
faca um teste:
desenvolvedor = false
programador = false
analista = true
arquiteto = false
(desenvolvedor == programador) -> Expressão do tipo boolean.
(boolean != analista) -> Vai dar true. É feito o autoboxing do boolean para Boolean e daí o != vai dar true.
(boolean != arquiteto) -> true de novo.
Isto é, estou assumindo que analista e arquiteto não são do tipo boolean.
:shock:
((desenvolvedor == programador) != analista) != arquitetoEu disse relativo a essa tua afimacao de igualdades e diferencas, porque é afirmado que desenvolvedor e programador sao diferentes que arquiteto, mas nao diz nada da relacao de desenvolvedor e programador com arquiteto (só afirma que arquiteto é diferente de analista que é diferente de programador e desenvolvedor).
vc não viu os (( )) ???
vi
faca um teste:
desenvolvedor = false
programador = false
analista = true
arquiteto = false(desenvolvedor == programador) -> Expressão do tipo boolean.
(boolean != analista) -> Vai dar true. É feito o autoboxing do boolean para Boolean e daí o != vai dar true.
(boolean != arquiteto) -> true de novo.Isto é, estou assumindo que analista e arquiteto não são do tipo boolean.
tu ainda nao entendeu…
desenvolvedor eh false
programador eh false
arquiteto eh false
entao programador == arquiteto
((desenvolvedor == programador) != analista) != arquitetoEu disse relativo a essa tua afimacao de igualdades e diferencas, porque é afirmado que desenvolvedor e programador sao diferentes que arquiteto, mas nao diz nada da relacao de desenvolvedor e programador com arquiteto (só afirma que arquiteto é diferente de analista que é diferente de programador e desenvolvedor).
vc não viu os (( )) ???
vi
faca um teste:
desenvolvedor = false
programador = false
analista = true
arquiteto = false(desenvolvedor == programador) -> Expressão do tipo boolean.
(boolean != analista) -> Vai dar true. É feito o autoboxing do boolean para Boolean e daí o != vai dar true.
(boolean != arquiteto) -> true de novo.Isto é, estou assumindo que analista e arquiteto não são do tipo boolean.
tu ainda nao entendeu…
desenvolvedor eh false
programador eh false
arquiteto eh falseentao programador == arquiteto
hehehe
Criativa essa =P
Abraços.
Higor
onde essa discussão vai parar? :shock: 
onde essa discussão vai parar? :shock:
Acho que consegui ter uma idéia melhor das diferenças, igualdades e opiniões hehe
((desenvolvedor == programador) != analista) != arquitetoEu disse relativo a essa tua afimacao de igualdades e diferencas, porque é afirmado que desenvolvedor e programador sao diferentes que arquiteto, mas nao diz nada da relacao de desenvolvedor e programador com arquiteto (só afirma que arquiteto é diferente de analista que é diferente de programador e desenvolvedor).
vc não viu os (( )) ???
vi
faca um teste:
desenvolvedor = false
programador = false
analista = true
arquiteto = false(desenvolvedor == programador) -> Expressão do tipo boolean.
(boolean != analista) -> Vai dar true. É feito o autoboxing do boolean para Boolean e daí o != vai dar true.
(boolean != arquiteto) -> true de novo.Isto é, estou assumindo que analista e arquiteto não são do tipo boolean.
Se precisou explicar é pq nao ficou claro 
Mas valeu a piada pq no fundo o usuario luistiagos é um grande brincalhao.
É verdade, como um antigo professor que tive sempre dizia:
“O óbvio é para ser dito.”
Onde entra o Estagiário nessa logica ?!
:shock:
[quote=daniel.info]Onde entra o Estagiário nessa logica ?!
:shock:[/quote]
Acho que é uma fase antes de ser programador ou desenvolvedor, acredito que não existam estagiários de arquitetos de software.
“Trate bem os idosos, um dia você vai ser um, trate bem os estagiários, um dia você foi (ou vai ser) um…”
[quote=daniel.info]Onde entra o Estagiário nessa logica ?!
:shock:[/quote]
Ele coloca o papel na impressora.
bem acho que todos já entenderam os conceitos!
[quote=daniel.info]Onde entra o Estagiário nessa logica ?!
:shock:
kkkk… os caras não perdoam…
Na época que eu era estagiário, com 6 meses de casa eu colocava muito clt e terceiro no bolso aqui na empresa…
Estagiário não é cargo é nível.
Se o cara é estagiário de programação, estagiário de desenvolvimento ou estagiário de construção de foguetes atômicos, não importa.
Programador, desenvolvedor, analista, arquiteto, advogado, médico, enfermeiro, engenheiro, agrônomo: CARGO
Estagiário, junior, pleno, senior: NÍVEL
Mas afinal, a sua dúida não era sobre as certificações?
Todo mundo respondeu sobre os cargos… :shock:
Mas afinal, a sua dúida não era sobre as certificações?Todo mundo respondeu sobre os cargos… :shock:
Era sobre cargos…
O programador/desenvolvedor escreve o código de determinada funcionalidade no sistema. Por exemplo, um botão num formulário que execute a ação de salvar um documento.
Mas imagine se esse botão for executado um milhão de vezes, por vários usuários. Isso certamente pode gerar alguns problemas de performance, caso o sistema não esteja preparado. Aí entra então o papel do arquiteto, que cuida do sistema de uma maneira mais ampla, cobrindo não apenas aspectos de performance, mas também de escalabilidade, segurança, etc.
Vou criar no off topic um post para discutir estagiários.
Acredito que seja:
Programador - Por definição é uma pessoa que conhece bem uma linguagem de programação,
mas não tem muitos conhecimentos relativo a modelagem, se for dado um monte de
diagramas UML para ele executar ele não conseguiria…Desenvolvedor - Ele tem todos os conhecimentos do programador mais uma bagagem com relação a modelagem,
um bom entendimento de UML… Mas não tem uma bagagem de padrões de projeto.
Ao contrário do programador se passar para ele somente os digramas este consegue se virar.Arquiteto - Além de ter um bagagem muito grande com modelagem, conhecimentos de padrão de padrões
de projeto, ainda deve conhecer a infra-estrutura onde a aplicação vai ser disposta…Podem verificar estas afirmações pelo conteúdo das provas de certificação da sum.
Acredito que a pessoa só é um programador bem nó inicio de sua carreira… ou se trabalha em uma fabrica somente montando sistemas…
Eu já trabalhei em uma empresa, onde se existiam “analista de sistemas” a justificativa do
gerente era que todos tinham que fazer as mesmas coisas ou seja se for pedido a um programador para
fazer um diagrama de classe de um sistema, este poderia recusar dizendo que não é uma tarefa dele.
Poxa…
Sou registrado como Programador Sênior e faço trabalho de analista: concepção, planejamento, análise, modelagem, programção e teste.
Acho que estou fazendo coisa demais para um “programador”…
…
Na minha opinião, qualquer um que mete a mão em código (de linguagem de programação) é programador.
Essas dezenas de títulos não fazem sentido pra mim, não sei quem inventou, se foi a Sun e ela achou que títulos diferentes iriam ficar legais nas certificações, mas não vejo sentido…
Se você usa os melhores conceitos de engenharia de software, design patterns, conhece bem de arquitetura, e faz um código ótimo, você no final das contas tá sendo um ótimo programador.
Como se programador fosse a classe Object do Java. 
Se contratam um engenheiro civil, pra “levantar” uma parede, ele está sendo um pedreiro naquele momento, não interessa se ele vai usar todos os conceitos de engenharia que ele aprendeu ou não.
Eu até sinto um certo orgulho do título “programador”.
Sempre que perguntam com o que eu trabalho (não importando se fui contratado como Analista Programador, etc), eu digo que sou programador de computador. E se for alguém da área eu entro em mais detalhes.