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

So you can code, now what

C104c0724758cd86c79205032b8bc528?s=47 Emma Fabre
September 28, 2015

So you can code, now what

How to be a good programmer beyond making good code

C104c0724758cd86c79205032b8bc528?s=128

Emma Fabre

September 28, 2015
Tweet

Transcript

  1. its-a me, maximo Hi everyone

  2. Maxime Fabre

  3. Maxime Fabre • 25 years old

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

    Madewithlove since 2013
  5. Maxime Fabre • 25 years old • Software Engineer at

    Madewithlove since 2013 • I take pics and do music and stuff
  6. I’m so French I breath baguettes and quote Baudelaire in

    my sleep
  7. only 00s kidz will remembhr

  8. None
  9. // 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>';
  10. Venn diagram of my experience in 2009 Things you should

    do in PHP Things I was doing in PHP
  11. SO YOU CAN CODE BUT NOW WHAT.

  12. What is a programmer?

  13. 17 % 58 % 25 % Coding Important stuff Slice

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

    of cheese What is a programmer? mr piechart i love wordpress
  15. None
  16. None
  17. The future

  18. The future The present

  19. The future The present The past

  20. None
  21. THE FUTURE, MARTY

  22. None
  23. Act like you’re your own mentor

  24. Act like you’re your own mentor señor developer

  25. Act like you’re your own mentor señor developer

  26. Act like you can’t code

  27. Act like you can’t code • Code review all the

    things
  28. Act like you can’t code • Code review all the

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

    things • Compare against the best • If my code were public, would I be scared?
  30. Act like you know nothing

  31. Act like you know nothing • We all know 10%

  32. Act like you know nothing • We all know 10%

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

    • Read things that don’t interest you • Read people hating the things you love
  34. 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
  35. None
  36. mueheheh

  37. Multireddits

  38. Fever (feedafever.com)

  39. “It’s fine”

  40. “It’s fine” Until it’s not.

  41. We work in a fast and furious 7 industry

  42. We work in a fast and furious 7 industry

  43. We work in a fast and furious 7 industry

  44. We work in a fast and furious 7 industry React

    Laravel Angular Backbone Grunt Gulp Webpack
  45. story of a webdevelopper’s life

  46. “Oh no you don’t have to learn everything” story of

    a webdevelopper’s life
  47. “Oh no you don’t have to learn everything” “Everybody knows

    what a repository is tho” story of a webdevelopper’s life
  48. Act like time is muh-neyz

  49. Act like time is muh-neyz • Don’t underestimate the weight

    of small repetitive tasks
  50. None
  51. None
  52. None
  53. APPLESCRIPT?

  54. APPLESCRIPT?

  55. None
  56. Act like time is muh-neyz

  57. Act like time is muh-neyz • Differentiate wasted time

  58. Act like time is muh-neyz • Differentiate wasted time •

    Your brain can rot, fast.
  59. me on holidays

  60. {foo: bar}

  61. {foo: bar} U WOT M8

  62. None
  63. None
  64. None
  65. None
  66. None
  67. None
  68. None
  69. None
  70. None
  71. Love your future-self as much as Phil Sturgeon loves bikes

  72. Act like your future-self has the ability to go back

    in time,
 pick up a bat, and beat the shit out of you
  73. 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
  74. None
  75. THE PRESENT

  76. Focus

  77. None
  78. None
  79. None
  80. None
  81. None
  82. None
  83. None
  84. None
  85. 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
  86. None
  87. THE PAST

  88. The past is everyone behind you

  89. The past is everyone behind you • Look at your

    old code
  90. The past is everyone behind you • Look at your

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

    old code • Be wary of perceived progress • Consider your past self
  92. None
  93. “Just”

  94. None
  95. “Just Heroku a Docker container over AWS and load balance

    the queue”
  96. “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”
  97. “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”
  98. were

  99. were

  100. None
  101. StackOverflow /r/reviewmycode Laracasts forums etc.

  102. None
  103. 6 years ago I knew nothing

  104. 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> ); }
  105. 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
  106. 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
  107. 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
  108. Evolution of my experience as a web developper Things you

    should do in 2015
  109. 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
  110. Alright guys I finally know Grunt and– OH GOD DAMMIT

    NOT AGAIN ( ͡ ° ͜ ʖ ͡ °)
  111. Either die a hero or live long enough to see

    yourself become a Joomla developper ;_; :( :( :(
  112. BRO DID YOU JUST USE MYSQL_QUERY

  113. SUMMARY

  114. If you were sleeping, I said:

  115. If you were sleeping, I said: • Stay on top

    of your game, learn new things
  116. 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
  117. 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
  118. 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
  119. 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
  120. 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
  121. Not whether facades should be named proxies Worry about the

    bigger picture
  122. None
  123. None
  124. 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/