¿Cuál es la mejor manera para que un ingeniero / programador de software nuevo / principiante descubra las mejores bibliotecas, API, marcos, etc. necesarios para el trabajo?

Si eres nuevo en ingeniería de software, debes enfocarte en los fundamentos de la programación en lugar de buscar nuevas herramientas.

Pero si ya conoce al menos un lenguaje de programación y está tratando de decidir qué aprender a continuación, le recomiendo usar Hacker News Hiring Trends.

Este recurso solo incluye ofertas de trabajo oficiales de empresas Y Combinator. Es el conjunto de datos menos ruidoso en el mercado laboral de desarrolladores en general.

A diferencia de Indeed (cuadro a continuación) y otros agregadores de ofertas de trabajo, este conjunto de datos no incluye cientos de miles de publicaciones creadas por reclutadores, la mayoría de los cuales no conocen Java de JavaScript.

Es cierto que Y Combinator es principalmente startups, pero también incluye grandes compañías como Dropbox, AirBnB y Twitch TV.

Dado que estas empresas son relativamente nuevas, pueden elegir herramientas contemporáneas en función de sus méritos objetivos, en lugar de la compatibilidad con los sistemas heredados.

El plan de estudios de Free Code Camp lo ayudará a aprender los fundamentos de programación y los marcos populares mediante la creación de docenas de proyectos. Si no está seguro de qué aprender, es un buen lugar para comenzar.

Solo escribo sobre programación y tecnología. Si me sigues , no perderé tu tiempo.

Hay un sitio llamado DiscoverSDK.com que tiene más de 2,500 SDK, API, bibliotecas, marcos, herramientas de desarrollo, etc., todos categorizados y organizados en una sola plataforma. Es la forma más fácil y rápida de encontrar lo que estás buscando.

Puede encontrar y comparar kits de desarrollo de software en numerosas categorías y filtrar los resultados de búsqueda por lenguaje de programación y tipo de licencia. Si se registra, puede dejar comentarios en los SDK y realizar comparaciones paralelas como esta, por ejemplo:

Si te registras como experto, incluso puedes ganar puntos en el sitio y aparecer en varias páginas. Tal vez conseguir algunos trabajos independientes de esa manera.

Compruébalo, es más fácil que buscar en Google y foros.

En mi experiencia (multinacionales, en su mayoría) terminas teniendo que aprender nuevas herramientas en cada nuevo trabajo.

Esto es lo que necesitaba para mi trabajo. Cada línea es un trabajo diferente.

  • Compilador de línea de comandos MSVC, SlickEdit, Microsoft Build,
  • Algunos Unix que ni siquiera recuerdo, Emacs y Gnu C ++
  • Visual Studio y MFC
  • Compilador de línea de comandos C ++, Visual Studio, Microsoft MSBuild, Source Insight.
  • Visual Studio, C #, .NET
  • Visual Studio, C ++ administrado
  • Eclipse, Java, varias plataformas de servicios web
  • IntelliJ, Java, kit de desarrollador de Android
  • IntelliJ, Java, Amazon Fire SDK
  • Visual C ++, estudio visual, Eclipse.

Lo que estoy tratando de decir es que las bibliotecas y herramientas adecuadas son algo que aprende según el trabajo en el que está trabajando. Las reglas varían de una compañía a otra y, a veces, de un equipo a otro.

Es bueno saber cualquiera de C #, C ++ y Java. Eclipse, Emacs e IntelliJ son buenos para saber. Visual Studio es bueno saberlo. Gnu CC es bueno saberlo.

Si tiene alguno de estos, es la base para poder obtener un buen trabajo de programación, ya que puede aumentar sus habilidades de programación indefinidamente.

Espero que “trabajo” signifique algo de trabajo que hacer en lugar de empleo. Nunca aprendas (quiero decir, abarrotar) nada para poner en tu currículum. Y cualquier tecnología es la más popular durante unos meses hasta que haya suficientes “recursos offshore” para inundar el mercado laboral. Quiero jugar ese juego, no tengo nada que ofrecer, excepto las búsquedas de palabras clave Indeed, Dice y Monster.

En el contexto de un proyecto o “trabajo por hacer”, debe comenzar con un análisis comercial muy detallado y luego diseñar su proyecto, dividiéndolo en tareas más pequeñas y preguntando cómo lograr cada una de ellas. Las tareas serán jerárquicas: el nivel superior dicta las opciones para el nivel inferior.

A veces, la imposibilidad de encontrar el marco de nivel inferior conducirá a cambiar el nivel superior. Por ejemplo, si quisiera escribir un sitio web de comercio electrónico en Java o Scala (Spring o Play), no habría tenido muchas opciones para el backbone de comercio electrónico. No es gran cosa para cualquier persona experta en el desarrollo de back-end: lógica de negocios y bases de datos, pero puede parecer desalentador para un desarrollador web con el fondo “creativo” (UX) (usan JavaScript, por ejemplo, Node.js de todos modos). Entonces, si tenía dudas sobre mi propia implementación de comercio electrónico, volvería y cambiaría Java a PHP con toneladas de marcos de comercio electrónico como Magento.

La decisión es muy personal. No hay respuestas correctas e incorrectas. Usted decide qué es lo más fácil y produce lo mejor: resultado estable, extensible y minimalista en términos de código.

Entonces, por supuesto, si está trabajando para alguien en el extremo de la venta (tienda de consultoría) o la compra (TI corporativa) de la Gran cadena alimentaria de consultoría de TI, no tendrá ninguna opción: vender o comprar Oracle, IBM, Microsoft y los gustos Quien sea su empleador (una empresa consultora) es un distribuidor de. O su departamento de TI tiene la “alianza estratégica” con. Entonces, si se ve a sí mismo como un glorioso “Arquitecto empresarial” en unos años, no tendrá que elegir tecnologías. Aunque formalmente se le requerirá que tome unos segundos y finja pensar que le preguntan sobre sus “recomendaciones de expertos”.

De lo contrario, haga un diseño detallado, produzca una lista jerárquica de tareas y busque en Google cada una de arriba a abajo. 99% de probabilidad de que te dirijan a StackOverflow, donde la gente discute esa elección específica con enlaces, etc. No estoy afiliado a StackOverflow, pero nunca me decepcionó.

Otros han hablado sobre cómo elegir entre un montón de herramientas y bibliotecas y quiero agregar que no debe preocuparse por usar la “mejor herramienta posible”. El software es imperfecto y cada herramienta o biblioteca carece de alguna forma. Después de descubrir los obvios (digamos Angular, Reaccionar), es mejor tirar una moneda que preocuparse por cuál es mejor.

Para un desarrollador bastante nuevo como yo, es algo bueno porque eres menos parcial y estás más dispuesto a probar nuevas tecnologías. Y sí, debería tomar recomendaciones de otros desarrolladores, pero deberían ser solo esas “sugerencias”. Inicialmente le ahorran tiempo, pero le roban el proceso de descubrimiento y forman su propia opinión sobre esa tecnología. Así que realmente se trata de compensaciones.

No confíes en ningún marco o lenguaje, son solo herramientas para que puedas hacer tu trabajo.

Recuerde que “lo perfecto es enemigo de lo bueno”.

La mejor manera de hacerse una idea de “la mejor herramienta para el trabajo” es aprovechar la experiencia de los otros desarrolladores más experimentados del equipo que ya han invertido importantes ciclos cerebrales en las mismas preguntas. Es probable que la mayoría de las propuestas de un desarrollador nuevo en un equipo profesional se encuentren con una respuesta de “No queríamos usar eso porque …”. Eventualmente, a medida que se familiarice con la faceta particular de la industria en la que está trabajando, y la pila y las limitaciones tecnológicas existentes, tendrá una mejor idea de las opciones que tienen potencial.

Dicho esto, una vez que se haya aclimatado, definitivamente me apoyaré en los foros en línea dedicados a las tecnologías centrales de su proyecto y, más divertido, a conferencias relevantes. Personalmente, encontré a OSCON increíblemente relevante y agradable. Es difícil equivocarse con una conferencia que cubre todo lo que es de código abierto.

Personas que conoces, Google, Quora y StackOverflow.

Pero también lleva tiempo encontrar los mejores y / o más relevantes.

Frecuentemente sigo las preguntas de Quora que preguntan sobre API específicas de dominio para ver qué hay en otros espacios solo para conocer los nombres en caso de que termine apoyándome en esas áreas en algún momento.

Más allá de eso, Google ayudará un poco, pero probablemente tomará un tiempo de búsqueda para encontrar las palabras correctas y puede tomar escanear algunas libs / API para encontrar una decente para su aplicación.

SO también es una forma decente de encontrarlos (se accede a través de Google). Alguien preguntará cómo hacer X cosas difíciles, y luego alguien más responderá con un enlace a la biblioteca Y en Github.

Más allá de eso, ocasionalmente te encontrarás con grupos de estas cosas. Como los catálogos de API de AWS o Bluemix con los que puede navegar y familiarizarse.

Entonces, por supuesto, siempre puede preguntar a las personas que conoce que trabajan en esos dominios si saben algo.

Pero sí, en caso de duda, Google. Aunque pueden pasar algunas semanas / meses usando uno meh antes de tropezar accidentalmente con uno perfecto, a medida que se familiarice con el dominio.

Aquí, Tech = bibliotecas, API, marcos, herramientas

No sé lo mejor, pero te diré lo que hago.

Esto incluye pocas reglas y pocos pasos.

Pasos

  1. Google y Quora para preseleccionar la tecnología
  2. Vaya al sitio web principal y busque documentación. Tiene que ser correcto y completo.
  3. Consulte los foros para ver cómo está su atención al cliente y su comunidad. No prefiero una comunidad BS.
  4. Google y Youtube para video tutorial de la tecnología. Preferiría una tecnología que tenga más tutoriales (incluso si se paga)
  5. Haga una lista más corta basada en documentación y tutoriales
  6. Tome cada tecnología acortada para una prueba de manejo (media hora a una hora). Entonces decídase.

Reglas

  1. Prefiere compañías establecidas sobre nuevas compañías. Ex. Apache y Google Techs
  2. La tecnología debe tener entre 3 y 5 años. De lo contrario, es un gran riesgo.

Únase a la comunidad que funciona más cerca de la cadena de herramientas o la pila con la que está trabajando. Estos grupos han acumulado conocimiento institucional de lo que funciona y lo que no. También tienen cierta capacidad para admitir estas herramientas.

Además, la mayoría de los desarrolladores más nuevos solo piden Google y Stack Overflow.

Me gusta usar las listas Awesome para obtener una visión general de lo que está cobrando impulso en un área en particular. Echa un vistazo a la lista impresionante de Elixir: h4cc / awesome-elixir

O Scala impresionante: lauris / awesome-scala

E incluso hay una lista meta impresionante llamada awesome impresionante: sindresorhus / awesome

More Interesting

Cómo convertirse en desarrollador de software o incluso desarrollador de hardware y alcanzar un alto nivel

¿Hay alguna forma de que el código se edite o cambie durante el tiempo de ejecución?

¿Cuál es el potencial (monetario) de un negocio de desarrollo de software personalizado, una tienda de consultoría de software para ser precisos?

¿Cuál es el mejor instituto de certificación ágil en Bangalore?

Cómo obtener asignaciones de desarrollo de software o contratos de TI

¿Un analista de negocios califica para una visa H1B, o es solo para desarrolladores de software e ingenieros de software?

Cuando un desarrollador de software dice que una tarea no se puede hacer técnicamente, ¿qué haces?

Como ingeniero de software o desarrollador de software, ¿es necesario / importante saber cómo realizar pruebas de software?

En la carrera profesional, ¿un probador de software se convierte en desarrollador en última instancia?

Si solo tiene dos desarrolladores de software promedio, ¿cómo escala un back-end para manejar más de 5 millones de tráfico?

¿Cuáles son algunos consejos o trucos que ayudan a lograr un equipo de desarrollo de software remoto o distribuido altamente productivo?

¿Por qué los desarrolladores comprarían el código fuente?

¿Qué puede esperar un nuevo desarrollador de software contratar en Epic Systems en su primer día en el campus?

Cómo convertirse en un desarrollador de datos de un desarrollador de software

Soy un estudiante de 4to año de ECE colocado en tecnologías Wipro. ¿Cómo puedo ingresar al trabajo de desarrollo de software?