Upgrade to Pro — share decks privately, control downloads, hide ads and more …

So you can code, now what

Emma Fabre
September 28, 2015

So you can code, now what

How to be a good programmer beyond making good code

Emma Fabre

September 28, 2015
Tweet

More Decks by Emma Fabre

Other Decks in Programming

Transcript

  1. Maxime Fabre • 25 years old • Software Engineer at

    Madewithlove since 2013 • I take pics and do music and stuff
  2. // Administration if((isset($_SESSION['pseudo']) && isset($_SESSION['mdp'])) && (($_SESSION['pseudo'] == 'admin') &&

    ($_SESSION['mdp'] == 'admin'))) { if(!isset($_GET['admin'])) echo '<p>Identifiants corrects, bienvenue sur l\'�cran d\'administration</p>'; //############################# //# COMMANDES, INSERTIONS ET MODIFICATIONS //############################# if(isset($_GET['admin'])) { if($_GET['admin'] == 'seq') { echo '<h1>Gestion des s�quences</h1>'; //############################# // AJOUT, MODIFICATION ETC //############################# // Suppression s�quence if(isset($_GET['delete'])) { mysql_query('DELETE FROM ovap_seq WHERE id=' .$_GET['delete']) or die(mysql_error()); echo '<p>S�quence supprim�e.</p>'; } if(isset($_POST['num']) && isset($_POST['lieu']) && isset($_POST['images'])) { // Modification s�quence if(isset($_POST['id'])) { mysql_query('UPDATE ovap_seq SET num="' .$_POST['num']. '", lieu="' .addslashes($_POST['lieu']). '", images="' .$_POST['images']. '", news="' .$_POST['news']. '" WHERE id=' .$_POST['id']) or die(mysql_error()); echo '<p>Entr�e modifi�e.</p>'; } // Ajout s�quence elseif(!isset($_POST['id'])) { mysql_query('INSERT INTO ovap_seq VALUES("", "' .$_POST['num']. '", "' .$_POST['lieu']. '", "' .$_POST['images']. '", "' .$_POST['news']. '", "' .time(). '")') or die(mysql_error()); require('rss.php'); rebuild_rss(); $fichier_pause = fopen('pause', 'r+'); fseek($fichier_pause, 0); // On remet le curseur au d�but du fichier fputs($fichier_pause, $_GET['pause']); // On �crit le nouveau nombre de pages vues fclose($fichier_pause); echo '<p>Entr�e ajout�e.</p>';
  3. Venn diagram of my experience in 2009 Things you should

    do in PHP Things I was doing in PHP
  4. 17 % 58 % 25 % Coding Important stuff Slice

    of cheese What is a programmer?
  5. 17 % 58 % 25 % Coding Important stuff Slice

    of cheese What is a programmer? mr piechart i love wordpress
  6. Act like you can’t code • Code review all the

    things • Compare against the best
  7. Act like you can’t code • Code review all the

    things • Compare against the best • If my code were public, would I be scared?
  8. Act like you know nothing • We all know 10%

    • Read things that don’t interest you
  9. Act like you know nothing • We all know 10%

    • Read things that don’t interest you • Read people hating the things you love
  10. Act like you know nothing • We all know 10%

    • Read things that don’t interest you • Read people hating the things you love • Read about stuff that seem unrelated
  11. We work in a fast and furious 7 industry React

    Laravel Angular Backbone Grunt Gulp Webpack
  12. “Oh no you don’t have to learn everything” “Everybody knows

    what a repository is tho” story of a webdevelopper’s life
  13. Act like your future-self has the ability to go back

    in time,
 pick up a bat, and beat the shit out of you
  14. Act like your future-self has the ability to go back

    in time,
 pick up a bat, and beat the shit out of you SHOULD HAVE LEARNED ES6, YOU IDIOT dolan pls
  15. 67 % 33 % Things I have time to talk

    about Thing I don't have time to talk about don’t forget to bring a towel
  16. The past is everyone behind you • Look at your

    old code • Be wary of perceived progress
  17. The past is everyone behind you • Look at your

    old code • Be wary of perceived progress • Consider your past self
  18. “Just Heroku a Docker container over AWS and load balance

    the queue” “It’s simple, just use Webpack and Node the Ruby over the command bus”
  19. “Just Heroku a Docker container over AWS and load balance

    the queue” “It’s simple, just use Webpack and Node the Ruby over the command bus” “Just Google it”
  20. import React, {PropTypes} from 'react'; import AbstractSubstep from './AbstractSubstep'; import

    './Story.scss'; export default class Story extends AbstractSubstep { static propTypes = { contents: PropTypes.string, label: PropTypes.string, placeholder: PropTypes.string, setStory: PropTypes.func.isRequired, }; static defaultProps = { placeholder: 'Write description...', }; /** * Set the story for this step */ setStory() { this.props.setStory( this.refs.story.value ); } render() { const attributes = { className: 'story--content-editable', value: this.props.contents, onChange: this.setStory.bind(this), placeholder: this.props.placeholder, ref: 'story', disabled: !this.state.editing, rows: 3, }; return ( <div className="form-group story"> <label className="control-label">{this.props.label}</label> {this.renderPencil()} <div className="col-ld-8"> <textarea {...attributes}></textarea> </div> </div> ); }
  21. import React, {PropTypes} from 'react'; import AbstractSubstep from './AbstractSubstep'; import

    './Story.scss'; export default class Story extends AbstractSubstep { static propTypes = { contents: PropTypes.string, label: PropTypes.string, placeholder: PropTypes.string, setStory: PropTypes.func.isRequired, }; static defaultProps = { placeholder: 'Write description...', }; /** * Set the story for this step */ setStory() { this.props.setStory( this.refs.story.value ); } render() { const attributes = { className: 'story--content-editable', value: this.props.contents, onChange: this.setStory.bind(this), placeholder: this.props.placeholder, ref: 'story', disabled: !this.state.editing, rows: 3, }; return ( <div className="form-group story"> <label className="control-label">{this.props.label}</label> {this.renderPencil()} <div className="col-ld-8"> <textarea {...attributes}></textarea> </div> </div> ); } AHAH THAT GUY IS STILL USING WEB COMPONENTS INSTEAD OF INTRAPROTOTYPED INHERITED JSXLF REPOSITORIES
  22. import React, {PropTypes} from 'react'; import AbstractSubstep from './AbstractSubstep'; import

    './Story.scss'; export default class Story extends AbstractSubstep { static propTypes = { contents: PropTypes.string, label: PropTypes.string, placeholder: PropTypes.string, setStory: PropTypes.func.isRequired, }; static defaultProps = { placeholder: 'Write description...', }; /** * Set the story for this step */ setStory() { this.props.setStory( this.refs.story.value ); } render() { const attributes = { className: 'story--content-editable', value: this.props.contents, onChange: this.setStory.bind(this), placeholder: this.props.placeholder, ref: 'story', disabled: !this.state.editing, rows: 3, }; return ( <div className="form-group story"> <label className="control-label">{this.props.label}</label> {this.renderPencil()} <div className="col-ld-8"> <textarea {...attributes}></textarea> </div> </div> ); } AHAH THAT GUY IS STILL USING WEB COMPONENTS INSTEAD OF INTRAPROTOTYPED INHERITED JSXLF REPOSITORIES
  23. import React, {PropTypes} from 'react'; import AbstractSubstep from './AbstractSubstep'; import

    './Story.scss'; export default class Story extends AbstractSubstep { static propTypes = { contents: PropTypes.string, label: PropTypes.string, placeholder: PropTypes.string, setStory: PropTypes.func.isRequired, }; static defaultProps = { placeholder: 'Write description...', }; /** * Set the story for this step */ setStory() { this.props.setStory( this.refs.story.value ); } render() { const attributes = { className: 'story--content-editable', value: this.props.contents, onChange: this.setStory.bind(this), placeholder: this.props.placeholder, ref: 'story', disabled: !this.state.editing, rows: 3, }; return ( <div className="form-group story"> <label className="control-label">{this.props.label}</label> {this.renderPencil()} <div className="col-ld-8"> <textarea {...attributes}></textarea> </div> </div> ); } AHAH THAT GUY IS STILL USING WEB COMPONENTS INSTEAD OF INTRAPROTOTYPED INHERITED JSXLF REPOSITORIES
  24. Evolution of my experience as a web developper ou should

    n 2011 Things you should do in 2012 Things you should do in 2013 Things you should do in 2014 Things you should do in 2015
  25. Either die a hero or live long enough to see

    yourself become a Joomla developper ;_; :( :( :(
  26. If you were sleeping, I said: • Stay on top

    of your game, learn new things
  27. If you were sleeping, I said: • Stay on top

    of your game, learn new things • Be prepared for radical changes in techniques, patterns and tools
  28. If you were sleeping, I said: • Stay on top

    of your game, learn new things • Be prepared for radical changes in techniques, patterns and tools • Keep your brain sharp
  29. If you were sleeping, I said: • Stay on top

    of your game, learn new things • Be prepared for radical changes in techniques, patterns and tools • Keep your brain sharp • Learn to stay focused and to compartmentalize your life
  30. If you were sleeping, I said: • Stay on top

    of your game, learn new things • Be prepared for radical changes in techniques, patterns and tools • Keep your brain sharp • Learn to stay focused and to compartmentalize your life • Remember your roots, be nice to newcomers, they could be better than you in 5 years
  31. If you were sleeping, I said: • Stay on top

    of your game, learn new things • Be prepared for radical changes in techniques, patterns and tools • Keep your brain sharp • Learn to stay focused and to compartmentalize your life • Remember your roots, be nice to newcomers, they could be better than you in 5 years • Don’t be afraid to learn everything from scratch
  32. thnk u • ◡• anahkiasen
 anahkiasen
 anahkiasen
 anahkiasen
 anahkiasen
 anahkiasen


    anahkiasen
 anahkiasen
 anahkiasen facebook.com/
 twitter.com/
 github.com/
 flickr.com/
 last.fm/user/
 steamcommunity.com/id/
 blogs.wefrag.com/
 soundcloud.com/
 trakt.tv/users/