Sona Avetyan Informazioni su JavaScript e sui suoi framework più utilizzati

Pubblicato: 2022-10-06

Nel mondo della tecnologia, tutti possiamo trovare le risposte alle nostre domande con un clic. Tuttavia, hai mai prestato molta attenzione al formato della fonte? Ti piace guardare video, leggere articoli, effettuare ricerche vocali o controllare in prima persona? Ad esempio, nello sviluppo di software e nel settore ITO, il controllo di interviste e storie personali direttamente da professionisti, come sviluppatori di software, ingegneri e CTO, è uno dei modi più interattivi e affidabili per educare te stesso. Le storie personali e le esperienze reali rendono l'istruzione più applicabile e memorabile.

In CodeRiders, abbiamo una serie di interviste con i nostri sviluppatori di software.

Nel mondo della tecnologia, tutti possiamo trovare le risposte alle nostre domande con un clic. Tuttavia, hai mai prestato molta attenzione al formato della fonte? Ti piace guardare video, leggere articoli, effettuare ricerche vocali o controllare in prima persona? Ad esempio, nello sviluppo di software e nel settore ITO, il controllo di interviste e storie personali direttamente da professionisti, come sviluppatori di software, ingegneri e CTO, è uno dei modi più interattivi e affidabili per educare te stesso. Le storie personali e le esperienze reali rendono l'istruzione più applicabile e memorabile.

In CodeRiders, abbiamo una serie di interviste con i nostri sviluppatori di software.

JavaScript sta anche guidando un altro rapporto di Statista come il linguaggio di programmazione più richiesto dai reclutatori di tutto il mondo.

Naturalmente, dopo questi numeri, è ovvio che i framework JavaScript saranno anche in testa alla lista dei framework web più utilizzati al mondo.

Secondo Statista, a partire dal 2022, Node.js, React.js e Vue.js sono tra i primi 10 framework più popolari tra gli sviluppatori di software in tutto il mondo.

Con questo in mente, iniziamo la nostra conversazione con lo sviluppatore di software full-stack di CodeRiders, Sona Avetyan.

Ciao Sona. Grazie per aver dedicato del tempo per condividere le tue conoscenze ed esperienze come sviluppatore di software. Per iniziare, presentati.

Ciao. Grazie per l'invito al colloquio. Sono Sona, uno sviluppatore di software full-stack con oltre 3 anni di esperienza professionale nello sviluppo di applicazioni Web e desktop utilizzando tecnologie innovative. Dalla mia accettazione nella società di sviluppo software CodeRiders, ho preso parte ai progetti della nostra azienda e ho distribuito con successo applicazioni utilizzando PHP, JavaScript e i suoi framework principali: Vue.js, Node.js, React.js e MySQL.

Come sei finito a CodeRiders?

Penso che la mia storia passata nel settore IT (in particolare in CodeRiders) sia interessante e forse motivante per alcuni. Ecco perché voglio condividerlo con voi in modo più dettagliato.

Ho un master in scienze attuariali e matematica e all'inizio della mia carriera mi sono immaginato come un professionista di successo in questo campo. Tuttavia, con il passare del tempo, ho notato che i miei interessi si stavano spegnendo, soprattutto dopo la grande "esplosione" dell'industria dell'informatica e della tecnologia dell'informazione nell'economia armena. Durante i miei anni universitari, il campo dell'informatica era fiorente in Armenia. Sempre più giovani adulti erano ossessionati dall'IT e c'erano così tante opportunità di crescita e carriere eccellenti. Anche se stavo andando abbastanza bene nel mio campo, ho deciso di avviarne uno nuovo di zecca nel settore della tecnologia dell'informazione. I miei amici mi hanno consigliato di affidarmi alla scuola di sviluppo web di CodeRiders per un inizio stabile e ho seguito i loro consigli.

Dopo essermi diplomato con successo alla scuola di sviluppo software CodeRiders, ho iniziato a lavorare per una delle più grandi compagnie assicurative in Armenia come specialista del supporto tecnico. Alla fine, sono cresciuto fino a diventare il capo della squadra. Anche se mi piaceva il mio lavoro, ho sempre saputo di volere molto di più del semplice supporto e manutenzione del codice scritto da altri sviluppatori software e ingegneri. La compagnia di assicurazioni è stata solo una "preparazione" per me per un percorso di carriera più ampio e luminoso.

Ho lavorato nella compagnia di assicurazioni per 6 anni e, nel frattempo, ho tenuto a mente CodeRiders. Sapevo che la scuola di sviluppo software è stata trasformata nella società di outsourcing del software CodeRiders ed è diventata una delle aziende tecnologiche locali di maggior successo in Armenia. Ho seguito CodeRiders sui social media e mi sono sempre immaginato come parte della loro squadra amichevole. Ho amato l'azienda e il suo stile di lavoro. Nel 2019, ho ricevuto una chiamata dal fondatore di CodeRiders e mi ha invitato a unirmi al loro adorabile team. È stata una delle mie telefonate preferite in assoluto. Ero entusiasta e, naturalmente, ho accettato l'offerta, ed è così che è iniziato tutto. Mi sono adattato rapidamente all'atmosfera poiché conoscevo l'azienda e tutti erano molto disponibili, amichevoli e sempre pronti ad aiutare.

Puoi parlare di più del tuo stack tecnologico principale e di cosa hai considerato quando hai scelto queste tecnologie?

Questo è il “pacchetto completo” delle mie competenze tecniche fin da ora.

  • Web: HTML, CSS3, LESS, SASS, Bootstrap, JavaScript, PHP
  • Server: Apache, WAMP
  • Database: MySQL, MSSQL
  • Linguaggi: PHP (versione 5.6-8.x), JavaScript, SQL
  • Tecnologie/librerie: Vue.js, React.js, Node.js, Laravel, JQuery, Electron.js, Social API (Google)
  • Concetti: OOP, MVC
  • Ambienti: Linux (Ubuntu, CentOS 6/7), MS Windows 10, Git, SVN

Ho lavorato con il linguaggio di sviluppo software PHP all'inizio della mia carriera di programmatore. Poi sono passato a JavaScript. Li adoro entrambi, ma JS è sicuramente il mio preferito.

Il mio primo "mini-progetto" con JS è stato la realizzazione di un sistema di biglietti da visita online per la nostra azienda. Tutti i nostri dipendenti possono inserire le proprie credenziali e realizzare i propri biglietti da visita personalizzati. Quindi, potrebbero scansionare e stampare questi biglietti da visita, trasferirli sui loro telefoni cellulari o computer e usarli in varie occasioni. Ho usato Vue.js per lo sviluppo front-end Node.js e MongoDB per lo sviluppo back-end. Questo è stato il mio primo vero progetto completamente basato sulle tecnologie JS. A quel tempo, avevo la possibilità di utilizzare PHP per il back-end, ma ero molto interessato a JavaScript e ai suoi framework. Inoltre, era un nostro progetto, quindi ci ho provato e ha funzionato molto bene.

JavaScript è molto dinamico se non usi TypeScript con esso, che è esattamente ciò che mi piace di JS. Mi piace giocare con il codice. È come giocare con il gesso e in molte occasioni non devi seguire determinati passaggi fissi. A differenza dei linguaggi statici come Java, in JavaScript, l'interprete assegna alle variabili un tipo in fase di esecuzione in base al valore delle variabili in quel momento. JavaScript dinamico è un metodo per creare azioni su una pagina Web senza dover caricare l'intera pagina nel browser. Questo, a sua volta, migliora la velocità del sito Web e lo rende più reattivo all'utente. D'altra parte, non puoi immaginare lo sviluppo web senza JS perché l'intero controllo dello sviluppo front-end è nelle mani delle tecnologie JS.

Quindi, in JavaScript, puoi essere molto più flessibile e può aiutarti in molti casi. Tuttavia, questo dinamismo a volte irrita molti sviluppatori di software, soprattutto se sono sviluppatori di software di linguaggi tipizzati come Java o C#. Non abbiamo nulla di corretto in JavaScript, ma d'altra parte, se vuoi essere un po' "creativo" con il codice, ti dà una possibilità. Nel frattempo, JavaScript ha anche una soluzione per quegli sviluppatori di software che sono abituati alle lingue digitate. Con la sua flessibilità, possono semplicemente utilizzare TypeScript con esso.

La differenza tra i linguaggi di sviluppo software tipizzati e dinamici è la seguente. Se dai un tipo a una certa variabile, è fissa e non puoi mai cambiarla. Ad esempio, se definisci una determinata variabile come una stringa, un numero o qualcos'altro, non potrai mai tornare indietro e cambiarne il tipo. D'altra parte, in linguaggi dinamici come JS, puoi dire, OK, attualmente la mia variabile è un numero, ma in seguito la trasformerò in una stringa. In alcuni casi il “rigore” delle lingue digitate è ottimo perché si evitano molti errori, ma d'altra parte il dinamismo della “flessibilità” aiuta anche in molte altre occasioni. Quindi, è difficile dire quale sia il migliore. Dipende principalmente da uno specifico sviluppatore di software e dalle caratteristiche di uno specifico progetto.

Per riassumere, se ho la possibilità di scegliere lo stack tecnologico di un progetto specifico, presto molta attenzione alla "sostanza" del progetto. È molto importante comprendere l'essenza del tuo progetto, la sua struttura e la possibilità della sua opportunità, poiché questi sono i fattori principali da considerare prima di scegliere uno stack tecnologico specifico per il tuo progetto. Ad esempio, dovresti usare SQL o MongoDB per il database? Perché è meglio usare Vue.js per lo sviluppo front-end? Che dire di Node.js o PHP per lo sviluppo di back-end e così via?

Per favore, parla delle tue cose preferite su JavaScript e i suoi framework (Node.js, Vue.js e React.js).

  • Il dinamismo di JavaScript
  • Lavorare con JS e i suoi framework è come costruire una casa

Come ho detto prima, il dinamismo è la cosa che preferisco numero uno. Mi piacciono di più i framework JS front-end. Con i framework front-end JavaScript, sei libero di giocare con la tua immaginazione.

Paragono spesso il lavoro con JS e le sue strutture alla costruzione di una casa. Per prima cosa costruisci lo "scheletro" del tuo edificio e stabilisci già i luoghi di oggetti specifici su ogni piano, ad esempio la porta d'ingresso, le stanze, le finestre e così via. Invece di ricostruirli tutti su ogni piano, li rimodelli semplicemente su ogni piano. Ogni pietra della tua casa è un componente e ogni scala o ascensore è un percorso. In questo edificio, ad esempio, ogni piano è costituito dalle pagine del tuo sito Web, le scale e gli ascensori sono i percorsi (quando ti trasferisci da una pagina all'altra) e tutti gli altri elementi, come pareti, sedie e finestre, sono componenti modificabili.

Gli ospiti della casa sono gli utenti e i residenti sono gli altri sviluppatori di software e ingegneri che lavorano con te. Gli ospiti dei residenti dovrebbero sentirsi a proprio agio quando visitano la tua casa.

Qual è il miglior framework JavaScript?

Questa è una domanda molto intrigante e, ovviamente, non ha una risposta specifica. Invece di menzionare solo un framework JavaScript specifico, confronterò i framework JS più popolari e lascerò a te la decisione.

Vue.js e React.js vengono utilizzati nello sviluppo front-end, mentre Node.js viene utilizzato per lo sviluppo del software back-end.

Vue.js e React.js sono molto simili e, allo stesso tempo, molto diversi. Se conosci React.js, è molto facile imparare Vue.js e viceversa. Questi due framework si stanno riempiendo a vicenda. Ad esempio, quando mi occupo di input e modifiche, è molto più semplice lavorare con Vue.js che con React.js.

In React.js, dovresti scrivere più codice che in Vue.js. Anche la struttura del codice è organizzata meglio in Vue.js, ma, ancora una volta, dipende molto anche da come scrivi il codice.

In generale, i framework JS sono i migliori perché sono costituiti da componenti ed è molto facile giocarci. Prendi in considerazione il modello "non ripetere te stesso". Se hai già scritto un componente, puoi usarlo in più posti invece di riscriverlo.

Ad esempio, devi scrivere un codice per un "pulsante" e la struttura di questo pulsante è la stessa in tutti i punti tranne che per modifiche minori, come il colore del pulsante o il colore del passaggio del mouse. Lo sviluppatore del software non riscrive il codice da zero se desidera apportare queste modifiche minori. Prendono il componente specifico responsabile del colore e lo cambiano su varie pagine in base alle esigenze del cliente. Quindi, su ogni pagina, chiami questa "componente del colore".

Uso Node.js nel mio sviluppo back-end insieme a React.js e Vue.js per lo sviluppo front-end e la combinazione di queste tre tecnologie è l'ideale. Scherzo su questa combinazione confrontandola con una persona ideale, che è bellissima sia dentro che fuori.

Nel framework Node.js, mi piace lavorare con Express.js o Nest.js. Ho iniziato a lavorare con Nest.js durante lo sviluppo del nostro nuovo sito Web, che sarà presto rilasciato.

Come valuteresti l'importanza di JavaScript nel settore IT di oggi?

Non immagino lo sviluppo web senza JavaScript. Naturalmente, al giorno d'oggi, il settore IT sta crescendo in modo massiccio e rapido, ma JS ha la stessa velocità di crescita. Adegua le sue soluzioni in base agli ultimi sviluppi IT. Quindi, sono sicuro che JS rimarrà nel settore IT per decenni.

Per favore, parla dei tuoi progetti di sviluppo software più "memorabili" su CodeRiders.

Parlerò del mio primo progetto “massiccio, complesso ed enorme”, come mi piace chiamarlo. Questo progetto mi ha formato come sviluppatore di software esperto.

È difficile spiegare in breve questo progetto di sviluppo di software personalizzato. Il cliente opera in molteplici settori: soluzioni software per media e intrattenimento con soluzioni software di marketing e analisi. Il cliente offre agli utenti un'ampia piattaforma per la registrazione, l'esecuzione e il monitoraggio dell'efficacia degli annunci pubblicitari delle proprie aziende, la definizione dei limiti di lavoro per i propri dipendenti e la verifica dei risultati.

Ho lavorato a questo progetto con i miei colleghi di CodeRiders e con altri ingegneri software remoti di altri paesi. Abbiamo lavorato a questo progetto ai tempi del lockdown per il COVID, quando tutti lavoravano da casa. Sono passati solo pochi mesi dalla mia accettazione nel team di CodeRiders. Poiché questo era il mio primo grande progetto, ero solito fare tardi, fino alle 2:00, con i miei colleghi sviluppatori di software di CodeRiders, che erano ansiosi di aiutarmi, in modo da poter essere facilmente coinvolto nei processi di sviluppo. Questa è stata per me l'"introduzione" allo spirito di squadra di CodeRiders.

Il nostro obiettivo era sviluppare codice privo di bug e di alta qualità, e non importava a chi stavamo lavorando. Tutti i miei colleghi avviavano videochiamate per rivedere il codice e dare consigli. Il nostro motto in CodeRiders è "Desideriamo, insieme raggiungiamo", e sì, questa è la verità, e grazie a questo approccio, mi sono integrato nel nostro team e ho acquisito esperienza nel campo dello sviluppo software.

Questo approccio ha funzionato anche con altri sviluppatori di software remoti. Ricordo che ogni volta che abbiamo avuto un problema, non importava chi avesse causato l'errore. La nostra prima priorità era risolvere il problema il prima possibile. Quindi, uno di noi lo farebbe il prima possibile. Quindi avremmo una chiamata di emergenza e discuteremo il problema e le cause del problema per assicurarci di non avere un problema del genere in futuro.

Si prega di enumerare alcuni vantaggi e svantaggi di JavaScript.

Vantaggi

  • JavaScript è facile da capire e da imparare.
  • JavaScript supporta tutti i browser moderni, il che aiuta a produrre un risultato equivalente.
  • Gli sviluppatori di software hanno la possibilità di creare interfacce avanzate.
  • Puoi semplicemente implementarlo in ogni progetto perché funziona perfettamente con altri linguaggi di programmazione.
  • Le aziende globali danno la priorità allo sviluppo della comunità e investono in progetti importanti. Buoni esempi sono Google, creato dal framework Angular, e Facebook, creato da React.js.
  • JS funziona molto bene con altri linguaggi tecnologici.
  • È possibile sviluppare un'applicazione completa utilizzando solo JavaScript dall'inizio alla fine perché abbiamo vari modi di utilizzare JS tramite i server Node.js.
  • E, ultimo ma non meno importante, è molto popolare e ha una vasta comunità. Puoi facilmente ampliare la tua conoscenza di JS perché ci sono molti corsi disponibili.

Svantaggi

  • Il codice JavaScript è visibile a tutti. Chiunque può controllare il codice.
  • Vari browser interpretano il codice JavaScript in modo diverso, il che può causare difficoltà nella lettura e nella scrittura del codice cross-browser.
  • In JS, il debug è supportato dagli editor HTML, che non sono efficienti come altri editor come C/C+. Ciò può complicare il lavoro dello sviluppatore nel rilevare la questione (non uno svantaggio critico).

Puoi descrivere una tipica giornata di lavoro in CodeRiders?

La mia giornata tipo in CodeRiders inizia con una buona tazza di caffè e una calda chiacchierata mattutina con i miei colleghi. Poi ognuno va al suo lavoro. Potremmo avere diversi incontri durante il giorno. Se è lunedì, l'intera squadra si riunisce per un grande incontro a fine giornata. Ognuno rappresenta ciò che ha fatto, ciò su cui sta lavorando attualmente e ciò che deve essere fatto. Se qualcuno ha problemi, li condivide con il team e noi diamo consigli.

Ciò che amo di CodeRiders è che, sebbene io sia al lavoro e sia responsabile della qualità del mio lavoro, non mi sento ancora sotto pressione per questo. Inoltre, l'atmosfera è così rilassante che opero meglio e in modo più produttivo.

Sappiamo che CodeRiders offre la flessibilità di scegliere tra lavorare da casa o dall'ufficio. Quale preferisci e perché?

Sì, abbiamo l'opportunità di scegliere tra lavorare da casa o dall'ufficio, ma adoro lavorare dall'ufficio. In entrambi i casi è produttivo per me, ma mi mancano i miei compagni di squadra e l'ufficio in generale. Provo molte emozioni positive quando lavoro dall'ufficio.

Immaginiamo di avere un colloquio con un cliente. Il tuo cliente ti presenta il suo progetto e, a questo punto, non ha requisiti tecnologici specifici. Sono aperti a suggerimenti. Puoi descrivere come andrai avanti con la conversazione?

Ho avuto molti colloqui con i clienti prima di entrare ufficialmente nel lavoro. Questo è naturale perché il cliente vuole assicurarsi che lo specialista che sta per assumere sia una buona coppia.

In queste interviste, la maggior parte dei clienti desidera comprendere la determinazione, l'approccio al lavoro ei valori personali dello sviluppatore di software. Ho anche ricevuto alcuni piccoli compiti di prova, ma questo non accade molto spesso, solo quando il cliente è nuovo nella nostra azienda.

Ci sono state volte in cui il cliente mi ha posto una domanda tecnica e non avevo una risposta in quel momento. Tuttavia, la maggior parte dei clienti non si concentra su questo, è più importante che comprendano la tua reazione alle sfide. Ci sono stati momenti in cui non conoscevo una tecnologia specifica di cui il cliente aveva bisogno, ma ho comunque superato la fase del colloquio. In questi casi, i clienti probabilmente vedono il mio desiderio di apprendere rapidamente la tecnologia richiesta.

Qual è il tuo progetto preferito in assoluto e perché?

Il mio progetto preferito in assoluto è il primo grande progetto che ho descritto sopra. Come mai? Perché è allora che ho acquisito tutta l'esperienza e la professionalità che ho ora. Ho lavorato su varie funzioni, testato la mia conoscenza di più cose e praticato varie tecnologie. Infine, ho sofferto molto su questi progetti: notti insonni e lunghe chiamate. Alla fine, sono diventati parte della mia vita.

Quale linguaggio tecnologico pensi sia il futuro dell'IT?

Questa è una domanda che non avrà una risposta definitiva. Ogni tecnologia è importante a modo suo e dovrebbe essere utilizzata al suo posto per funzionare correttamente. Ad esempio, per la scienza dei dati e l'intelligenza artificiale, utilizziamo Python e funziona. Tuttavia, Python non è la soluzione migliore per lo sviluppo web di back-end. Alcuni progetti non sono così grandi e complicati ma sono scritti nelle lingue sbagliate, il che complica inutilmente il lavoro.

Cosa consiglieresti a quegli sviluppatori di software che stanno appena iniziando la loro carriera nel settore della tecnologia dell'informazione?

Se pensi che imparerai solo una volta e utilizzerai le tue conoscenze durante l'intera carriera, non è il caso dello sviluppo software. Dovresti essere pronto per imparare cose nuove e aggiornare e aggiornare le tue conoscenze durante l'intero ciclo di carriera. Quindi, dovresti lavorare e imparare contemporaneamente nel settore IT, o rimarrai indietro.

Grazie, Sona, per aver dedicato del tempo per parlare con noi e condividere la tua ricca esperienza.

Inoltre, ricordiamo che gli sviluppatori di software JavaScript con i loro framework popolari (React.js, Vue.js e Node.js) sono molto popolari in questi giorni. Nell'odierna carenza di talenti IT globali, è molto più facile trovare sviluppatori di software JavaScript, Vue.js, React.js e Node.js a prezzi convenienti, soprattutto se sei interessato all'outsourcing del software e cerchi sviluppatori di software remoti in hub tecnologici affidabili .

Per assumere sviluppatori JavaScript, offriamo una consulenza gratuita con il team CodeRiders. Contattaci per discutere le tue esigenze software e controllare le nostre tariffe per sviluppatori software.