¿Qué lenguaje de programación es el mejor? (Orientación profesional importante para los programadores y desarrolladores)
por el administrador
¿Tiene problemas para la conversión de medios de comunicación social lleva a los clientes que pagan? CoupSmart es una herramienta increíblemente inteligente que le permite utilizar la comercialización del cupón con el "Club Insider" de la que es su lista de contacto social de los medios.
Además de ser el actual director de tecnología de CoupSmart, Troy Davis es un desarrollador con experiencia y una larga lista de éxitos a sus espaldas. A través de sus años en la industria del software, se ha dado cuenta algunas de las tendencias clave de carrera que separan a los desarrolladores de éxito de los que nunca llegan a su máximo potencial.
Troy ha sido lo suficientemente bueno para sentarse conmigo y compartir algunas de sus ideas. Disfrute de la entrevista a continuación.
¿Puedes por favor, dame un poco de historia acerca de ti y CoupSmart?
Empecé como un webmaster para agencias de publicidad en 1995, trabajó como desarrollador de software y de TI predeterminada gerente de unas pocas empresas como mi carrera progresó. Uno de los productos que se trabajó en algo de dinero de inversión en 2008 y he estado trabajando para las empresas de inicio como director de tecnología desde entonces. Me he concentrado sobre todo en la mayoría de las aplicaciones Web de mi carrera, pero también han desarrollado un ordenador de sobremesa y embebidos algunas aplicaciones también. En 2001 empecé un grupo llamado Los programadores de Cincinnati Guild, una organización educativa sin fines de lucro, que se centró en la ampliación de los conocimientos de sus miembros al aprobar ninguna tecnología específica, lo cual es muy diferente de los grupos más técnicos. En cambio, la atención se centró en el aprendizaje de nuevas ideas, no importa qué tecnologías se utilizaron. Hemos tenido constantes reuniones mensuales para 5 o 6 años, y fue una gran experiencia.
CoupSmart comenzó en 2009 por el CEO Blake Shipley. Originalmente centrada alrededor de una aplicación para el iPhone, que cambió su enfoque al final del año pasado para tratar algunas ideas interesantes que surgieron con respecto a la dinámica económica, de negocios y sociales de los cupones. Hemos estado ofreciendo un sistema de Web / Facebook promociones por un par de meses, que permite a la gente para compartir ofertas con sus amigos para ganar una oferta de mayor valor. Nuestros clientes son en su mayoría en Cincinnati en el momento. Estamos centrados en la vinculación de medios sociales con el mundo físico para nuestros clientes, y recientemente han desarrollado un dispositivo de hardware para punto de venta para ayudar en este esfuerzo. Esta se encuentra en pruebas beta con algunos clientes en el momento.
¿Cuál es tu más grande de carne con mentalidad de la comunidad de desarrollo de software?
No es tanto la comunidad de desarrolladores de software que presentan un problema, la mayoría de las personas que hacen el esfuerzo de buscar y hablar con otros programadores buscan el conocimiento ellos mismos, y por lo general quieren saber cómo los demás a cumplir sus retos. Esto a menudo lleva a tratar de varios idiomas, proveedores, plataformas, etc y eso es todo bueno.
El problema que estoy discutiendo es más frecuente en los desarrolladores solitarios. Las tecnologías que utilizan son inicialmente atractiva, simplemente porque los anuncios de empleo presentan mayores salarios iniciales para los desarrolladores con experiencia en ellos. Después de algunas clases y mucho ensayo y error, el promotor se convierte mínimamente competente, en un aspecto limitado de desarrollo de software, y consigue un trabajo a través de entrevistas (a menudo) con una persona no técnica de recursos humanos que no pueden detectar los desarrolladores también.
Después de unos años, el desarrollador alcanza un cierto nivel de competencia con las tareas a menudo que se les asignen, y se supone que son profesionales de desarrollo de software. Y a menudo la costa durante todo el tiempo que pueda en este nivel.
Algún tiempo después, una nueva persona se hace cargo del departamento y no se preocupa por las tecnologías utilizadas por su predecesor. Así que un esfuerzo de migración comienza, y se espera que todos se adaptan a las nuevas tecnologías rápidamente o encontrar algún otro tipo de trabajo por sí mismos. Si un desarrollador había tomado un interés en mantenerse al día con su campo de trabajo, que tendrían las recomendaciones para los nuevos sistemas para contribuir, y es probable que encuentre un lugar cómodo en la nueva estructura. Pero los que se basaba en los laureles a menudo responden a la defensiva, obstaculizando el cambio porque simplemente le temen. Y en última instancia, obtener cartas de despido.
Cuando yo estaba activo con el Gremio de Cincinnati programadores, vi a muchos desarrolladores de mainframe que habían sido despedidos en olas, y una vez que paro estaban desesperados por recoger que una idea clave que necesitaban para conseguir otro trabajo haciendo lo mismo que estaban haciendo para la durar 15 o 20 años. Muchas de estas personas llegaron a sus reuniones primera hermandad que sólo tienen por escrito COBOL o FORTRAN toda su carrera. Ellos nunca se molestaron en aprender cualquier otra cosa. Y la mayoría de ellos parecía tener la idea de que aprender un nuevo idioma sólo era todo lo que necesita para recuperar su puesto anterior y la estatura.
Algunos se las certificaciones en el. Net o Java, gastando miles de dólares para reiniciar sus carreras. Algunos consiguieron trabajo nuevos y nunca los vi en las reuniones del gremio una vez más, volvieron a sus existencias solitarias, supongo. Sin embargo, la mayoría de ellos se quedó en paro desde hace años, teniendo esta clase o de clase que a medida que se lo podían permitir, con puestos de trabajo temporales. Muy pocos de ellos trató de ir al exterior, ya sea. Todos querían volver a las grandes empresas, lo que parecía. La ilusión de la seguridad en el empleo era frecuente, a pesar de la evidencia obvia de lo contrario, es decir, todas las personas con acertijos de carrera similares asisten a las reuniones.
Si un desarrollador ha tenido éxito en una determinada plataforma o el lenguaje, ¿qué pasa con la especialización y convertirse en un experto en esa área en particular?
No hay nada malo con ser un experto en un área particular de estudio, es exceso de especialización que es el problema: centrarse en un conjunto de tecnologías a la exclusión de todos los demás. Así que sólo porque les guste la escritura C + + en Linux no significa que usted debe fingir que es la única manera de escribir software decente. Usted puede engañar a algunas personas a creer que usted, pero al final estás engañando a ti mismo.
Un ejemplo: Un programador que utiliza para trabajar con Windows sólo odiaba y todo lo que pasó con él. Simplemente no podía soportar estar en la misma habitación con él. He trabajado en un Mac, por lo que estaba exento de alguna manera. Pero tuvimos una aplicación web que necesita para ser compatible con todos los principales navegadores, y que era el plan. Este desarrollador peleado con casi todo el mundo en el personal que no sólo compatible con Internet Explorer, lo que habría sido un casi seguro que un acto de suicidio para cualquier empresa SaaS. Yo estaba a cargo de este grupo, por lo que era mi trabajo para tratar de persuadirla para conseguir el trabajo hecho a pesar de la compatibilidad de sus escrúpulos. No funcionó muy bien, varios ataques de gritos y la rabia que sucedió tanto en persona como por teléfono. Me instó a trabajar con ella como un profesional independiente sólo por un tiempo para ver si alguna de aislamiento podría ayudar, pero no fue así, y en última instancia, que fue despedido.
Otro ejemplo: Un desarrollador de Linux que trabajó conmigo en la primera agencia de publicidad que trabajó en finales de los 90. Era joven y obstinado muy de lo grande sus tecnologías elegidas fueron. Él frecuentemente insultados compañeros de trabajo por su incompetencia técnica como él la veía, no era popular entre el personal. Pero él escribió el código que nadie más en la empresa sabían escribir en ese momento, y era el código importante, por lo que sus erupciones sociales se toleraban. Decidí aprender más acerca de Linux y C en ese punto, y dentro de un par de meses tenía una comprensión bastante buena de lo que este hombre estaba haciendo todos los días. Y no era mucho. Sus pretensiones de superioridad técnica se había convertido en una muleta, y usó la falta de conocimiento de los demás para justificar la falta de trabajo muy duro para todos. Finalmente, fue despedido después de un intercambio particularmente desagradable con unos compañeros de trabajo pocos. Al día siguiente se registra en el servidor de un cliente de su casa y eliminado de su sitio web completo, junto con varios archivos de registro que podría haberle implicado en ello. Pero echaba de menos uno, y tenía una dirección IP, que se confirmó más tarde ese día con su proveedor de Internet que se asignará a su inicio de sesión en ese momento. Hemos perdido el cliente de todos modos, pero se puso vigilancia especial por las autoridades policiales de años después. Todavía puede ser monitoreada, no estoy seguro.
Muchos dirán que es una apuesta inteligente y una maniobra política para alinear sus esfuerzos con la plataforma más fuerte o el más dominante. ¿Qué pasa con esta mentalidad?
Nada, siempre y cuando usted entienda que lo que usted está centrado en es sólo el sabor del mes actual, e inevitablemente será reemplazado por otra tecnología en algún momento. Así que estar preparado por aprender acerca de las alternativas antes de que sea el momento de cambiar.
Mi punto es que la programación es una carrera donde cualquier dominio del valor tiene una fecha de caducidad adjunta, y el paso del tiempo, que el período de caducidad se acorta. Esto es acorde con lo rápido que está cambiando de hardware, la industria de los microprocesadores se ha mantenido muy cerca de las predicciones de la ley de Moore por más de 30 años, y muchos académicos dicen que esto es evidencia de que todavía estamos en los albores de la computación. Sería poco sensato asumir que hemos llegado a ningún tipo de meseta sostenible con estas tecnologías todavía.
Así que la gente de mainframe que he mencionado anteriormente que había las mismas tareas durante 15 o 20 años es probable que sea el último de su especie. Un programador solitario, superespecializado entrar en el campo hoy en día sólo puede salirse con su habilidad actual para los 5-10 años. Esta disminución continua en la longevidad de las habilidades de computación recién adquiridas de acuerdo con el concepto de singularidad tecnológica, algo que puede ser vale la pena visitar:
http://en.wikipedia.org/wiki/Technological_singularity
¿Qué es lo peor que puede pasar? ¿Qué hay de malo en pegarse a las técnicas que son "suficientemente bueno", y más familiar?
Yo veo posibles peligros, incluyendo un déficit generalizado de los programadores capaces, debido a exceso de especialización en tecnologías anticuadas ahora (las grandes empresas han estado utilizando esta afirmación para justificar el creciente número de visas para trabajadores de alta tecnología desde hace décadas), y enormes cantidades de dinero que se gasta innecesariamente para sostener una envejecimiento de la tecnología debido a la resistencia interna al cambio. Se trata en última instancia, hacer que toda la economía menos productiva / rentable. Eso significa menos puestos de trabajo para todo el mundo y una economía más pequeña en general como recursos valiosos que se gastan en los no productivos los esfuerzos, tratando de atrapar las tempestades en vasos de diferentes tamaños y composiciones, en lugar de inventar lo que realmente se necesita en el futuro previsible.
Y no hay una filosofía de desarrolladores de larga duración que "lo suficientemente bueno" técnicas realmente son lo suficientemente buenos, siempre y cuando usted sabe que sus opciones también. Eso no es en desacuerdo con el valor del aprendizaje continuo, sin embargo. La mayoría de las veces, "suficientemente bueno" tiene que ver con un juicio de cuánto tiempo se necesitaría para implementar una solución más compleja a un problema, frente a la elección de un método más simple que ha conocido inconvenientes, pero probablemente no se manifiesta como un problema . Utilizando una técnica antigua para ofrecer la funcionalidad deseada más rápido no es intrínsecamente malo, podría ser la mejor manera de que el sistema funcione como se desea. Pero siendo conscientes de las alternativas para que la decisión puede ser costoso para muchas más personas que el promotor y empresario. Insuficiencias de software se repiten una y otra vez con un número creciente de personas, por lo que una mala decisión de un desarrollador puede tener un impacto desproporcionado sobre las vidas de muchas personas más en el tiempo.
Sin embargo, más al punto, yo no creo que sea posible para respaldar la afirmación de que cualquier tecnología de software única será "suficientemente bueno" para hacer frente a una amplia variedad de problemas en un lapso de tiempo. No estamos en esa etapa del desarrollo tecnológico todavía.
¿Cuál fue su filosofía de desarrollo cuando se trabaja en CoupSmart, y qué tipo de resultados lo trajo?
El trabajo de desarrollo de software ya había sido iniciado por dos a tiempo parcial a los desarrolladores cuando me uní a CoupSmart, por lo que el lenguaje ya había sido elegido, y que era PHP. No es mi idioma preferido, pero es perfectamente adecuado para aplicaciones web modernas, por lo que no estaba preocupado. Hay también la ventaja de que más desarrolladores recién salidos de la universidad tienen un conocimiento práctico de PHP, mientras que menos está familiarizado con Ruby, que es el idioma que yo podría haber elegido si las variables hubieran sido diferentes.
Y aunque probablemente sea demasiado pronto para saber si nuestra elección lenguaje de programación tiene un impacto directo en el éxito de CoupSmart como empresa, estamos a menudo elogiado por otros empresarios en nuestro círculo de amigos, sus equipos de desarrollo de software están trabajando en el. Net o Java , y están aparentemente mucho menos productiva reciben los mismos recursos. Así que voy a contar como una victoria provisional.
¿Por qué cree que otros desarrolladores son tan resistentes a las nuevas ideas?
Creo que se puede responder a esto con las mismas razones que las personas se resisten al cambio en general. El temor a los desconocidos, dudas sobre sí mismo, las opciones abrumadoras, etc Es realmente no es diferente. Nosotros desarrollamos hábitos, porque es más fácil que repensar todas las decisiones sola pasada, es sólo más rápido. Pero cuando usted no puede reevaluar sus decisiones previas por mucho tiempo, siempre hay consecuencias como usted y el resto de la deriva de la sociedad, aparte ideológicamente.
Una mujer que conocí a través de la Cofradía era un programador de mainframes COBOL que fueron despedidos después de más de 20 años escribiendo el mismo tipo de código de todos los días de trabajo. Se sustituye el mainframe con un sistema más moderno, y ella no había transferido al equipo haciendo la obra nueva. Ella pensó que su proyecto fracasaría, al parecer. Sin duda, podría tener, un montón de proyectos de software fracasan. Pero éste no lo hizo, y ella fue despedida poco después de que la computadora central fue dado de baja. Decidió que lo que era tan nuevo en la programación moderna, que había estado ausente en su obra fue la orientación a objetos (también conocida como OO), una capa de abstracción que hace que sea más fácil diseñar sistemas de software grandes. La animé a aprender un nuevo idioma con el fin de familiarizarse con los conceptos de OO, pero ella parecía tener miedo de alguna manera. Meses más tarde, ella me dijo que se había registrado, finalmente, para una clase en. Neto. Que sin duda tratarán temas orientados a objetos, por lo que trató de dar algún tipo de refuerzo positivo. Pero creo que su concepción de la forma en la novela de este concepto se pudo haber conseguido en su manera de simplemente utilizar hasta que ella lo entiende. Ella sigue estando fuera del trabajo para el día de hoy, más de 5 años más tarde.
Estoy familiarizado con un programador que trabajaba para una agencia de publicidad de la competencia. Hablé con él durante el almuerzo una vez, y admitió tímidamente que todavía estaba haciendo la mayor parte de su trabajo en ColdFusion, un entorno de programación que no podría decirse que el envejecimiento muy bien. Le pregunté si estaba pensando en intentar algo más moderno para los nuevos proyectos, y afirmó haber investigado algunas otras opciones, pero simplemente no estaba dispuesto a renunciar a su medio favorito, que le encantó y me sentí muy cómodo. Cerca de dos años más tarde, me enteré de que su compañía había cerrado su departamento y lo puso fuera, no suficientes clientes querían que su trabajo realizado en ColdFusion más, y el desarrollador simplemente no estaba dispuesto a intentar algo más, por lo que dejó de recibir nueva proyectos, y después de un tiempo que no podían justificar el mantenimiento de su tiempo completo sólo para trabajos de mantenimiento en las aplicaciones antiguas.
Puestos relacionados con:
- Habilidades de comunicación son vitales para el éxito en una carrera de TI
- Los CIOs y CTOs Futuro: El secreto para crear y ejecutar una tecnología ganadora de Información Plan de Carrera
- Consejos para CRM Telesales al por mayor y Teleprospecting (CRM B2B)
- Del mundo real Consejos para construir su sala de servidores de primer
- ¿Por qué es multi-núcleo tan importante?















