Quiero aumentar mi conocimiento en conceptos de programación desde que me gradué en electrónica y comunicación (BE). ¿Cómo mejoro mis habilidades y cuál es mi futuro?

Hola,

En primer lugar, felicidades por tratar de pensar en el crecimiento incremental para usted. Abordaremos esta pregunta con un punto de vista diferente. Presentaré algunas preguntas y posibles respuestas que pueden llevarlo a encontrar las direcciones correctas adecuadas y apropiadas para usted. Tengo mi mayor experiencia en desarrollo en PHP, por lo que mis recursos estarían acostumbrados a PHP. Pero intentaré enumerar los recursos más generales posibles.

Si quieres crecer técnicamente, hazte las siguientes preguntas:

1. ¿Puedo diseñar aplicaciones orientadas a objetos adecuadas?

– OOD es lo básico para el diseño de software. No solo lo ayudará a diseñar aplicaciones adecuadas, sino que también lo ayudará a mejorar su conocimiento y enfoque conceptual. Como desarrollador de PHP durante los últimos 3 años, supongo que ha estado en contacto con muchos marcos. Pero analice usted mismo si ha realizado aplicaciones basadas en el diseño adecuado. Si no es así, comprenda la arquitectura subyacente de los marcos populares como Laravel, Symfony, etc. Lea Patrones de diseño: Gang of Four, un libro definitivo que lo guiará a través del viaje para comprender los patrones de diseño. Lea, aplique y practique OOD. Te ayudará a tener una experiencia. A veces, tienes ganas de dejar de fumar y simplemente lo dejas pasar. Pero quédese e invierta tiempo. Eventualmente, saldrás como un hombre mejor. Comprenda los principios de SOLID e intente aplicarlos. Una vez que domine OOD, puede cambiar a cualquier lenguaje orientado a objetos, ya que los conceptos seguirán siendo los mismos; solo cambiará la sintaxis. Entonces, hagas lo que hagas, maestro OOD. Algunos recursos que me ayudaron

– La OOP en PHP
– Conceptos orientados a objetos
– Convertirse en un profesional de PHP: el eslabón perdido

Además, no tengas miedo de leer mucho código. Leer el código de otras personas puede enseñarle mucho sobre cómo hacer bien las cosas en la práctica. ¿Quizás uno de los paquetes en la Liga PHP? La liga de paquetes extraordinarios

Puedo recomendar algunos libros generales como “Head First Design Patterns” o “Patterns of Enterprise Application Architecture”. La “refactorización” de Fowler también es una gran lectura. Desearía haber leído el Programador pragmático antes en mi carrera, es otro libro realmente bueno. Más adelante, Domain Driven Design es un clásico por una razón. Desearía tener mejores consejos aquí, pero en última instancia, la experiencia es el mejor maestro. Leer el código fuente es otra gran técnica.

2. ¿Entiendo los algoritmos e intento hacer uno para superar los problemas lógicos diarios en el desarrollo?

Esta es la segunda parte más importante para el desarrollo técnico. Créame, se siente fuera del mundo cuando genera una lógica para resolver algún problema y funciona de manera eficiente. Pero, hay mucho trabajo duro detrás de esto. Hay una creencia primaria de que la lógica está en mente y proviene del don del intelecto. Lo creo, pero con el enfoque adecuado y el trabajo duro podemos mejorarlo. Estudie tantos algoritmos como pueda. Luego comience a resolver problemas relacionados con ellos en HackerRank, HackerEarth | Ayudamos a los desarrolladores a encontrar excelentes trabajos, USA Computing Olympiad, topcoder.

El enfoque general que prefiero al estudiar algoritmos es:

a. Comprender el enunciado del problema (el más importante)
si. Intenta crear un algoritmo tuyo para resolver el enunciado del problema
do. Ahora, lee la solución y comprende dónde te equivocaste
re. Analice su enfoque y comprenda los errores en el enfoque que está utilizando para la lógica.
mi. Repita los pasos anteriores para siempre 😛

Los algoritmos son divertidos de aprender y le dan a nuestro cerebro mucho ejercicio. Forman la base de su lógica. No te desmotives. Solo intenta, intenta y prueba. Te tomarás tu tiempo. Pero, si practicas, intentas y analizas superarás 🙂

3. ¿Estoy tratando de aprender todos los idiomas?

No te enfocas en un idioma, te enfocas en el contexto. Cada idioma es, por defecto, uno de los mejores en un contexto dado.

Por ejemplo:

  • Te interesa el procesamiento de datos. Desea encontrar patrones, analizar números y descubrir cosas que otras personas se perdieron al comparar cantidades de datos absolutamente brutales. Te enfocarás en uno de los idiomas que fue diseñado específicamente para eso, algo como The R Project for Statistical Computing o Scala.
  • Desea crear sitios web, de arriba a abajo. Desea saber qué se necesita para poner en marcha un proyecto y desea poder hacerlo todo usted mismo. Te enfocarás en algo como PHP, JavaScript, HTML, CSS.
  • Desea ser un experto en todos los oficios y necesita un lenguaje que no solo pueda aplicar a todos los contextos, sino que pueda hacerlo fácilmente e incluso transferir conocimientos a otros sin mucha dificultad: elegirá Python o Dart.
  • Desea crear imágenes maravillosas con código. Te interesan los fractales, 3D, ecualizadores, espectáculos de luces. Irás a Procesar, o quizás juegues con JavaScript y WebGL, quizás busques algo elegante como ThreeJS.
  • Desea crear juegos basados ​​en el navegador: utilizará ThreeJS, HTML5, CSS y / o Dart.
  • Desea crear juegos de computadora de escritorio instalables. Usarás C ++ o Java.
  • Desea crear aplicaciones móviles. Utilizará HTML5 + CSS + JavaScript para todas las plataformas, o desarrollará aplicaciones nativas en Objective C para dispositivos Apple y Java para Android.

Y así sucesivamente … hay más contextos, pero entiendes lo esencial. En mi caso, me gusta poder presentar una idea RÁPIDO. Me gusta el hecho de que puedo pasar de cero a un producto completo y completamente probado en una semana. Es por eso que elegí los lenguajes web: HTML, CSS, JS, PHP, Dart. Su caso puede diferir.

No intentes atraparlos a todos: ser un maestro de unos pocos es mejor que ser un gato de todos los oficios. Una vez que encuentre su contexto, encontrará su idioma.

4. ¿Debo encontrar un mentor? POR QUÉ ?

SÍ.

Porque, un mentor puede guiarte adecuadamente al núcleo. Un mentor le dará un camino por el que pasar y siempre lo guiará. Obtendrá una dirección sobre qué evitar y por qué. Facilitará su proceso de aprendizaje y también lo sujetará con su experiencia. Nunca subestimes el poder de un compañero.

5. ¿Te gusta?

Intenta divertirte. Pasé por una fase en la que intenté aprender todo lo que pude lo más rápido que pude y fue productivo, pero también me estresó mucho, por lo que recomendaría un poco de equilibrio. Si no sonríe cuando lee un libro o algún código por la noche, quizás intente un enfoque diferente. 🙂

6. ¿Me conecto con mis compañeros u otros profesionales en todo el mundo?

Este es el aspecto más descuidado pero importante. Conéctese con sus desarrolladores pares. Comparta su trabajo, discuta enfoques y asista a conferencias a nivel mundial. Esto no solo lo ayudará a conectarse con otros pares, sino que también lo ayudará a comprender los enfoques seguidos en varios lugares. Y descanse, todo es experimentar, comprender todos los enfoques y elegir lo que más le convenga. Contribuya al código abierto, ya que lo ayudará a aprender a contribuir a la comunidad de desarrolladores.

Algunos otros consejos que creo que deberían considerarse:

1. No te estreses en el aprendizaje. Comprenda la razón por la que está haciendo algo, analice y luego actúe
2. Recuerde siempre: “El propósito de la vida es una vida de propósito”
3. Conceptos, desarrollo y lógica es un arte. Si no disfruta de la creatividad mientras aprende o implementa, ¿por qué lo hace? Solo deja que llegue el momento y disfrútalo.
4. Conéctese con otros pares en todo el mundo. Discutir ideas. compartir problemas y reunirse para disfrutar. Como dijo Chetan Bhagat: “No hables en serio, sé sincero”

Espero que esto ayude y les deseo la mejor de las suertes en el futuro. Puede ser una carrera difícil pero también excelente. 🙂

Estás en el camino correcto. Sigue adelante. Aprende cosas pequeñas (lógica) y hazlas de una mejor manera.

More Interesting

Quiero participar en un concurso de aplicaciones web donde el tema es "aplicaciones para la vida laboral diaria". ¿En qué contexto debo interpretar esto y qué campos puedo abordar?

Mi jefe está tratando de convertirme en gerente de proyecto de un desarrollador web debido a mi buen historial de comunicación con los clientes. ¿Cuáles podrían ser las consecuencias positivas o negativas?

¿Por qué sigo sintiendo que no sé nada después de 1 año de experiencia como desarrollador web?

Cómo insertar automáticamente un Google HangoutsOnAir, en mi sitio web donde realmente puedes iniciar un Hangouts privado desde el sitio web y usar aplicaciones

Cómo construir un sitio web de tutoría en línea en WordPress

Conozco los conceptos básicos de JS, jQuery, PHP y HTML / CSS. Necesito crear un sitio web interactivo, para preguntas y respuestas para el público. ¿Cuáles son los siguientes pasos?

¿Por qué necesito ingenieros incluso después de construir mi plataforma?

Quiero comenzar un sitio web de una sola página para vender mi libro electrónico. ¿Con qué compañía / plan de alojamiento debo ir?

Quiero construir un sitio web con un motor de reservas y otras características avanzadas. ¿Debo usar WordPress o sitios web como Wix o construirlo desde cero?

No puedo decidir si quiero aprender web u otra programación, así que ¿no puedo hacer las dos cosas?

Ahora tengo mi aplicación web completa, escrita en HTML, CSS y JavaScript. Actualmente es un archivo de escritorio. ¿Cuáles son los siguientes pasos? ¿Cómo hago para crear el lado del servidor?

He creado un formulario en HTML. ¿Cómo creo un archivo PHP para enviar el contacto a mi correo electrónico?

Tengo un sitio web alojado en WP Engine y utilizo su servicio CDN. ¿Hay algún beneficio al usar CloudFlare para CDN o sus características de seguridad?

¿Cuáles son los principales puntos débiles que queremos resolver cuando va a la agencia de desarrollo web?

Acabo de comenzar a aprender HTML, pero ¿cuál es la diferencia entre las etiquetas y ?