Voglio programma! [chiuso]

3

Sono molto interessato a imparare come programmare, ma non sono sicuro se voglio orientarmi verso lo sviluppo web o la programmazione di software. O la programmazione del computer copre entrambi in un guscio di noce? Dove dovrebbe o come devo iniziare?

    
posta Charles in Charge 30.03.2012 - 05:58
fonte

4 risposte

5

Lo sviluppo web e lo sviluppo di applicazioni client tradizionali (che è quello che presumo tu intenda per "programmazione software") sono cose molto diverse.

Quando scrivi un'app Web, prendi input da un client e produci HTML come output, da rendere nel browser del client. La programmazione Web è fondamentalmente stateless . Ciò significa che poiché il browser non mantiene una connessione aperta con il tuo server, non puoi assumere nulla sulle interazioni passate quando arriva una nuova richiesta. Tutto ciò che crei deve essere basato sui dati che il browser ti invia e sui dati hai memorizzato nel database. (È possibile salvare alcuni dati in memoria sul server, quindi non è sempre necessario leggere il database per tutto se hai lo stesso utente che fa un sacco di richieste in un breve lasso di tempo, ma dal momento che la connessione Web è stateless e non rimane aperto, non hai modo di sapere quando sono finiti, quindi devi assicurarti che tutti i dati vengano memorizzati nel database.)

D'altra parte, quando si scrive un'app tradizionale, generalmente si controllano direttamente non solo i dati ma anche il codice che disegna ciò che l'utente vede. E sapere quando il programma è in uso e quando viene spento è una parte intrinseca del programma, quindi puoi fare molto più affidamento sui dati in memoria e preoccuparti solo di salvare i dati quando è opportuno farlo all'interno del contesto del tuo programma. Inoltre, un'app tradizionale viene eseguita direttamente sul computer dell'utente e viene utilizzata da una sola persona alla volta, mentre un server web può dover gestire centinaia o persino migliaia di connessioni da persone diverse contemporaneamente.

Per fare un esempio semplice, supponiamo di avere un gioco in cui un personaggio può camminare su una mappa. In un programma tradizionale, il tuo codice disegna la scena, l'utente usa la tastiera o il mouse per dire al personaggio di spostarsi in un'altra posizione, e il tuo programma disegna il movimento sullo schermo. Probabilmente è animato, perché non è difficile da fare se sai qualcosa sugli sprite.

L'operazione su un'app Web sarebbe molto diversa. L'utente ha una pagina web aperta nel proprio browser che visualizza la mappa e il carattere. Selezionano una nuova posizione in cui spostarsi facendo clic su di essa. La tua pagina contiene un codice che dice al browser di inviare una richiesta per eseguire tale spostamento sul tuo server tramite HTTP. Il tuo server lo riceve. Prima deve convalidarlo, (devi assicurarti che sia una mossa legale, dal momento che il comando move è solo una richiesta Web, è molto facile per qualcuno provare a imbrogliare semplicemente inviando al server quello che vogliono, che sia o meno in realtà ha senso secondo le regole,) osservando la posizione corrente del personaggio nel database e assicurandosi che sia possibile eseguire quella mossa. Quindi (assumendo che sia valido) calcola gli effetti della mossa sul gioco, salva le modifiche al database e crea una nuova pagina web contenente la mappa di gioco aggiornata da inviare al browser dell'utente.

Questo è un po 'troppo generalizzato (da entrambe le parti) ma questa è l'idea generale della differenza tra programmazione Web e programmazione app tradizionale. Qual è il modo in cui dovresti orientarti maggiormente dipende da cosa sei interessato a creare. Questa è davvero la prima domanda a cui dovresti rispondere. Se dici solo "Voglio programmare qualcosa", allora non hai un punto di partenza. Ma se dici "Voglio scrivere una XYZ", allora hai un obiettivo reale e puoi iniziare a capire come è fatto.

Un piccolo consiglio, e questa è un'altra generalizzazione, ma è utile. Quando ci si avvicina ad esso, la programmazione in realtà consiste solo in due compiti fondamentali: scomporre un problema in una serie di piccoli sotto-problemi ed esprimere piccoli problemi nella logica formale in modo che un computer possa comprenderli. Se riesci a imparare davvero a fare queste due cose, il resto sono solo tecniche specifiche e acquisisci esperienza per sapere quale usare dove.

    
risposta data 30.03.2012 - 06:35
fonte
1

L'interesse è qualcosa che viene sviluppato quando lavori effettivamente su quella cosa.

Quindi IMHO dovresti provare entrambi per un po 'di tempo. Scoprirai i pro e i contro di lavorare con entrambi.
Prova a scoprire quale era più facile da codificare o da capire , quale ti ha incuriosito e sviluppato all'interno di te vuoi saperne di più

Parlare di Programmazione computer è davvero un argomento molto ampio.
L'applicazione Web e la programmazione software non sono niente di meno ampio.

L'applicazione Web non si limita a configurare un sito Web e a connettersi al database. Molto più di quello.
Devi essere molto creativo mentre la progettazione di un sito web per attirare più persone in più sui problemi di sicurezza è anche un aspetto importante.
Hai anche diverse tecnologie per sviluppare un'app Web. Avere familiarità con le tecnologie sarà qualcosa che dovrai fare da solo.

Programmazione software non solo per le tue applicazioni desktop. Hai anche la tua programmazione CNC, sistema operativo, driver, giochi e molto altro. Anche le tecnologie che usi sono numerose.

Un'altra cosa che voglio che tu consideri è la condizione di mercato qual è l'ultima cosa. Provare a farlo perché è più facile trovare un lavoro con una conoscenza della tecnologia più recente di quella obsoleta.

    
risposta data 30.03.2012 - 07:01
fonte
1

Lo sviluppo Web non è esattamente la programmazione all'inizio.

Lo sviluppo Web è incentrato sulla formattazione e sulla visualizzazione di una pagina semi-statica per l'utente. A questo non servono algoritmi ecc. (Non molto, almeno), uno ha solo bisogno di un certo senso estetico.

D'altra parte, quando si programma, si inizia con la logica. Sento che questa è una cosa migliore da fare, perché una volta che conosci la programmazione, seguire in webdev è piuttosto facile.

Il processo di "apprendimento dello sviluppo web" è il seguente:

  • Scopri HTML / CSS. Questo non è programmazione.
  • Impara un po 'di javascript per una semplice interattività. Ancora non impari davvero a programmare in questo modo.
  • Progetta alcune pagine web. Nessuna programmazione richiesta (HTML != programming), il suo senso estetico.
  • Decidi di imparare cose come PHP. Per la maggior parte degli scopi pratici di webdev, non stai ancora programmando molto.
  • Scopri JS avanzato e PHP avanzato. Usalo. Ora stai programmando.

Il processo "impara il linguaggio di programmazione" è il seguente:

  • Scopri la sintassi di base. Se, per, mentre.
  • Informazioni sulle funzioni.
  • Scrivi grandi algoritmi. Questo è in programmazione.

Lo sviluppo Web si concentra sul contenuto visualizzato all'utente. Non ci sono davvero troppi algoritmi coinvolti - la definizione di algoritmi è ciò che rende la programmazione fantastica - e non è necessario applicare alcuna abilità logica.

D'altra parte, la programmazione si concentra sul contenuto, ma si focalizza anche molto sull'ottimizzazione e sugli algoritmi. Devi davvero pensare qui. Inoltre, la maggior parte dei linguaggi di programmazione è più strutturata.

In realtà, qui, dipende davvero da cosa ti interessa. Trovo più divertente il pensiero logico. Il Web design diventa divertente solo per me quando c'è un grande ambiente strutturato coinvolto. Le cose semplici che fai per lo più in webdev diventano noiose. Per te, potrebbe essere diverso. Potresti provare sia la programmazione che il webdev contemporaneamente (non troppo difficile - non sono in conflitto).

Solo una nota: contrariamente a qualunque cosa ho detto qui, ho iniziato personalmente la mia incursione nella programmazione via HTML. Ho imparato JS e sono andato da altri linguaggi di programmazione. Ma è solo perché mi sono concentrato sugli algoritmi anche durante lo scripting JS.

    
risposta data 30.03.2012 - 07:08
fonte
0

Dipende da dove si trova veramente il tuo interesse. Mi piace comunicare e interagire direttamente con i sistemi operativi. Quindi vado con la programmazione del software. Si arriva a conoscere meglio il sistema.
La programmazione Web può essere suddivisa in client e programmazione lato server. Dal lato del cliente fai cose usando javascript, css, html e simili e sul lato server puoi usare la tecnologia a seconda del server che scegli. Ovviamente il server può anche fare presentazioni.
In entrambi i casi devi affrontare la stessa cosa, cioè la logica, la presentazione, la persistenza.
Ciò che differisce è il linguaggio di programmazione e lo stack tecnologico.

    
risposta data 30.03.2012 - 08:59
fonte

Leggi altre domande sui tag