From: Bryan F. <bry...@gm...> - 2009-07-03 23:18:11
|
Thanks for your input, guys. On Fri, Jul 3, 2009 at 5:42 PM, < chi...@li...> wrote: > Send chiPHPug-discuss mailing list submissions to > chi...@li... > > To subscribe or unsubscribe via the World Wide Web, visit > https://lists.sourceforge.net/lists/listinfo/chiphpug-discuss > or, via email, send a message with subject or body 'help' to > chi...@li... > > You can reach the person managing the list at > chi...@li... > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of chiPHPug-discuss digest..." > > > Today's Topics: > > 1. Anyone up for code sample maturity mentoring? (Bryan Fagan) > 2. Re: Anyone up for code sample maturity mentoring? (matt donohue) > 3. Re: Anyone up for code sample maturity mentoring? (Anacreo) > 4. Re: Anyone up for code sample maturity mentoring? (matt donohue) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Fri, 3 Jul 2009 12:44:58 -0500 > From: Bryan Fagan <bry...@gm...> > Subject: [chiPHPug-discuss] Anyone up for code sample maturity > mentoring? > To: chi...@li... > Message-ID: > <9ec...@ma...> > Content-Type: text/plain; charset=UTF-8 > > Hello, All. > > A recruiter recently told me that one of her clients--who was specifically > looking for a PHP developer--said that my code sample didn't show the level > of "maturity" that the client was looking for. Hmmm, ok. Can anyone help me > on my path to maturity with some constructive criticism of my code sample? > > I thought my code through and imagined it to be pretty good stuff, but > evidently I've got some growing to do. I certainly cannot claim to be a PHP > expert, but experience and reading have brought me through enough levels of > bad and immature code hell to imagine that I am well into the intermediate > range. I originally considered providing classes from my portfolio website, > which is a Zend Framework-based MVC setup with an XML database, but decided > instead to write a small command-line application from scratch so that a > potential employer could run it with as few setup hassles and snags as > possible. I set out to make sure that I included the following elements, > which generally constitute what I believe to be indicative of mature PHP > code: > > * standard OOP principles, including high decoupling and good > encapsulation, > inheritance, polymorphism, composition, and aggregation > * most PHP 5 OOP features, including interfaces, abstract classes, and > exception handling > * use of design patterns > * use of SPL and an external code library (Zend Framework, in this case) > * file, stream, and XML handling > * Zend coding standard > * E_STRICT cleanliness > > That's a pretty good checklist, right? And almost all of it made it in. So > is the problem in the execution? Is it that I didn't do it "test first" and > include the unit tests (that's a skill I'm still working on)? Questions, > comments, concerns? > > I'd appreciate as much insight as anyone has to offer. I'm not asking so > much for help with a re-write as for help understanding what is immature > about the code or the project as a whole--and what I need to understand and > learn to do to have any recruiter think, "Damn, this guy's good! Bring him > in." > > If you're interested in this mentoring task--or just want to point and > laugh--you can download the zipped-up code from my professional website at > the address http://bryanfagan.info/documents/Bryan_Fagan_Code_Sample.zipand > open it with the password "super good password". > > Bryan Fagan > > P.S. I am woefully unemployed, so if you see my stuff and know of someone > looking for a LAMP developer who might think anything even close to "this > guy's good," I would be eternally grateful if you'd pass on my contact > information or send me a link as appropriate. > > > ------------------------------ > > Message: 2 > Date: Fri, 3 Jul 2009 13:01:11 -0700 (PDT) > From: matt donohue <mm_...@ya...> > Subject: Re: [chiPHPug-discuss] Anyone up for code sample maturity > mentoring? > To: Chicago PHP User Group <chi...@li...> > Message-ID: <753...@we...> > Content-Type: text/plain; charset=iso-8859-1 > > Hey Bryan, > > Excellent question. > > I would bet the vacations days (I don't get to take) that they never got > too far into your code. > Just my opinion- but, when people ask for code samples they want original > examples exclusively. > I think less is always more when it comes to code samples (offer more > later!) and (again) I would ONLY show original code and specifically > examples of solving real world problems (not conceptual applications). > Small code?chunks (3 or 4 max) of larger classes, modules?or utility > classes that demonstrate your coding methods or philosophy dealing with > actual problems. > (I mix my samples with utility functions, class methods and even > Javascript, AJAX and JSON.) > Generally you would tailor the samples you choose?based on?the job > description and you would describe why you chose the examples > and how they fit into the the position you are applying for. > Think of the hiring questions they would be asking? Can he work with a > large existing code base. Is he good?working with a?database? > Is he more of a back-end developer or does he know CSS, AJAX and > Javascript? Can he work on his own or does he need supervision? > Do you: borrow code, use frameworks extensively, have your developed your > own framework/class base? > The real question you should answer for them is?how will YOU solve their > problems. > If you don't have a long work history this is difficult and could be the > reason they would mention maturity. > I would say offhand, your example is asking a lot from the prospective > employee. Not that it doesn't demonstrate a thorough understanding of PHP > concepts. > It's more thorough than I code. > I (personally) would never dig through a code sample like that to hire > someone. > You don't mention your work experience but, if it is minimal I would say > the odds of getting a job requiring code samples is limited. > That's not a mentoring position which, is what I believe you would want? No > one is going to hire someone who can 'conceptually' do the job for something > more front-line. So, in that vein I'm thinking your in-between a bubble of > not being an intern/trainee but, without enough 'real' experience to cement > a Jr Dev position. > Generally- code samples are a sanity check, and not why you are actually > hired. > Even with years of experience you'll find you are under qualified for some > positions and over qualified for others so, I wouldn't dwell on it much and > keep trying. > > I can send you an old example of a cover letter and code samples for > reference- email me. I'm sure they are embarassing. > > Matt > > > > > ________________________________ > From: Bryan Fagan <bry...@gm...> > To: chi...@li... > Sent: Friday, July 3, 2009 12:44:58 PM > Subject: [chiPHPug-discuss] Anyone up for code sample maturity mentoring? > > Hello, All. > > A recruiter recently told me that one of her clients--who was specifically > looking for a PHP developer--said that my code sample didn't show the level > of "maturity" that the client was looking for. Hmmm, ok. Can anyone help me > on my path to maturity with some constructive criticism of my code sample? > > I thought my code through and imagined it to be pretty good stuff, but > evidently I've got some growing to do. I certainly cannot claim to be a PHP > expert, but experience and reading have brought me through enough levels of > bad and immature code hell to imagine that I am well into the intermediate > range. I originally considered providing classes from my portfolio website, > which is a Zend Framework-based MVC setup with an XML database, but decided > instead to write a small command-line application from scratch so that a > potential employer could run it with as few setup hassles and snags as > possible. I set out to make sure that I included the following elements, > which generally constitute what I believe to be indicative of mature PHP > code: > > * standard OOP principles, including high decoupling and good > encapsulation, > inheritance, polymorphism, composition, and aggregation > * most PHP 5 OOP features, including interfaces, abstract classes, and > exception handling > * use of design patterns > * use of SPL and an external code library (Zend Framework, in this case) > * file, stream, and XML handling > * Zend coding standard > * E_STRICT cleanliness > > That's a pretty good checklist, right? And almost all of it made it in. So > is the problem in the execution? Is it that I didn't do it "test first" and > include the unit tests (that's a skill I'm still working on)? Questions, > comments, concerns? > > I'd appreciate as much insight as anyone has to offer. I'm not asking so > much for help with a re-write as for help understanding what is immature > about the code or the project as a whole--and what I need to understand and > learn to do to have any recruiter think, "Damn, this guy's good! Bring him > in." > > If you're interested in this mentoring task--or just want to point and > laugh--you can download the zipped-up code from my professional website at > the address http://bryanfagan.info/documents/Bryan_Fagan_Code_Sample.zipand > open it with the password "super good password". > > Bryan Fagan > > P.S. I am woefully unemployed, so if you see my stuff and know of someone > looking for a LAMP developer who might think anything even close to "this > guy's good," I would be eternally grateful if you'd pass on my contact > information or send me a link as appropriate. > > ------------------------------------------------------------------------------ > _______________________________________________ > chiPHPug-discuss mailing list > chi...@li... > https://lists.sourceforge.net/lists/listinfo/chiphpug-discuss > > > ------------------------------ > > Message: 3 > Date: Fri, 3 Jul 2009 15:58:51 -0500 > From: Anacreo <an...@gm...> > Subject: Re: [chiPHPug-discuss] Anyone up for code sample maturity > mentoring? > To: Chicago PHP User Group <chi...@li...> > Message-ID: > <69c...@ma...> > Content-Type: text/plain; charset=ISO-8859-1 > > I couldn't agree with Matt's response more... if they just said the code > was > not mature enough, they probably didn't think the example was appropriate. > Did they give you a few example problems and ask for you to resolve them > or > did you just provide some code samples out of a portfolio? > Do you want to provide one or two of your examples and maybe we could give > you some examples of how to solve the problem? > Some things that drive me nuts when hiring: > * "Young" programmers who think they're so cool because they've > mastered the ternary operator, : ?, and use it to illegibility -- honestly > don't bother using it at all... > * Mixed variable and formatting styles within your code, shows a lot of > cut and paste action... > * No variable style at all -- Pick a standard and use it... > * Skipping language constructs, don't skip ;'s {}'s ()'s or []'s... > * Code repetition -- if you're repeating the same code chances are you > shouldn't be... > And finally code commenting... > Every procedure, variable, and > definition should be clearly commented with EXACTLY what it does. > > At the end of the day OOP vs non-OOP doesn't matter so much to ME as much > as some other people stress it, if you write clear fundamentally good code, > you'll get the job over someone who doesn't have OOP examples or not... > > > Also is there ingenuity in the code... The one thing that drives me batty > is hard coded code... if you can make it extensible do it... Drawing a > table?, make it as dynamic, robust and extensible as possible so it can be > the foundation of future work... If you have something that goes beyond > just > standard work that defines your abilities you may try something like that > (even in a somewhat raw state). > > Alec > > On Fri, Jul 3, 2009 at 3:01 PM, matt donohue <mm_...@ya...> wrote: > > > Hey Bryan, > > > > Excellent question. > > > > I would bet the vacations days (I don't get to take) that they never got > > too far into your code. > > Just my opinion- but, when people ask for code samples they want original > > examples exclusively. > > I think less is always more when it comes to code samples (offer more > > later!) and (again) I would ONLY show original code and specifically > > examples of solving real world problems (not conceptual applications). > > Small code chunks (3 or 4 max) of larger classes, modules or utility > > classes that demonstrate your coding methods or philosophy dealing with > > actual problems. > > (I mix my samples with utility functions, class methods and even > > Javascript, AJAX and JSON.) > > Generally you would tailor the samples you choose based on the job > > description and you would describe why you chose the examples > > and how they fit into the the position you are applying for. > > Think of the hiring questions they would be asking? Can he work with a > > large existing code base. Is he good working with a database? > > Is he more of a back-end developer or does he know CSS, AJAX and > > Javascript? Can he work on his own or does he need supervision? > > Do you: borrow code, use frameworks extensively, have your developed your > > own framework/class base? > > The real question you should answer for them is how will YOU solve their > > problems. > > If you don't have a long work history this is difficult and could be the > > reason they would mention maturity. > > I would say offhand, your example is asking a lot from the prospective > > employee. Not that it doesn't demonstrate a thorough understanding of PHP > > concepts. > > It's more thorough than I code. > > I (personally) would never dig through a code sample like that to hire > > someone. > > You don't mention your work experience but, if it is minimal I would say > > the odds of getting a job requiring code samples is limited. > > That's not a mentoring position which, is what I believe you would want? > No > > one is going to hire someone who can 'conceptually' do the job for > something > > more front-line. So, in that vein I'm thinking your in-between a bubble > of > > not being an intern/trainee but, without enough 'real' experience to > cement > > a Jr Dev position. > > Generally- code samples are a sanity check, and not why you are actually > > hired. > > Even with years of experience you'll find you are under qualified for > some > > positions and over qualified for others so, I wouldn't dwell on it much > and > > keep trying. > > > > I can send you an old example of a cover letter and code samples for > > reference- email me. I'm sure they are embarassing. > > > > Matt > > > > > > > > > > ________________________________ > > From: Bryan Fagan <bry...@gm...> > > To: chi...@li... > > Sent: Friday, July 3, 2009 12:44:58 PM > > Subject: [chiPHPug-discuss] Anyone up for code sample maturity mentoring? > > > > Hello, All. > > > > A recruiter recently told me that one of her clients--who was > specifically > > looking for a PHP developer--said that my code sample didn't show the > level > > of "maturity" that the client was looking for. Hmmm, ok. Can anyone help > me > > on my path to maturity with some constructive criticism of my code > sample? > > > > I thought my code through and imagined it to be pretty good stuff, but > > evidently I've got some growing to do. I certainly cannot claim to be a > PHP > > expert, but experience and reading have brought me through enough levels > of > > bad and immature code hell to imagine that I am well into the > intermediate > > range. I originally considered providing classes from my portfolio > website, > > which is a Zend Framework-based MVC setup with an XML database, but > decided > > instead to write a small command-line application from scratch so that a > > potential employer could run it with as few setup hassles and snags as > > possible. I set out to make sure that I included the following elements, > > which generally constitute what I believe to be indicative of mature PHP > > code: > > > > * standard OOP principles, including high decoupling and good > > encapsulation, > > inheritance, polymorphism, composition, and aggregation > > * most PHP 5 OOP features, including interfaces, abstract classes, and > > exception handling > > * use of design patterns > > * use of SPL and an external code library (Zend Framework, in this case) > > * file, stream, and XML handling > > * Zend coding standard > > * E_STRICT cleanliness > > > > That's a pretty good checklist, right? And almost all of it made it in. > So > > is the problem in the execution? Is it that I didn't do it "test first" > and > > include the unit tests (that's a skill I'm still working on)? Questions, > > comments, concerns? > > > > I'd appreciate as much insight as anyone has to offer. I'm not asking so > > much for help with a re-write as for help understanding what is immature > > about the code or the project as a whole--and what I need to understand > and > > learn to do to have any recruiter think, "Damn, this guy's good! Bring > him > > in." > > > > If you're interested in this mentoring task--or just want to point and > > laugh--you can download the zipped-up code from my professional website > at > > the address > http://bryanfagan.info/documents/Bryan_Fagan_Code_Sample.zipand > > open it with the password "super good password". > > > > Bryan Fagan > > > > P.S. I am woefully unemployed, so if you see my stuff and know of someone > > looking for a LAMP developer who might think anything even close to "this > > guy's good," I would be eternally grateful if you'd pass on my contact > > information or send me a link as appropriate. > > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > > chiPHPug-discuss mailing list > > chi...@li... > > https://lists.sourceforge.net/lists/listinfo/chiphpug-discuss > > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > > chiPHPug-discuss mailing list > > chi...@li... > > https://lists.sourceforge.net/lists/listinfo/chiphpug-discuss > > > > > ------------------------------ > > Message: 4 > Date: Fri, 3 Jul 2009 15:42:50 -0700 (PDT) > From: matt donohue <mm_...@ya...> > Subject: Re: [chiPHPug-discuss] Anyone up for code sample maturity > mentoring? > To: Chicago PHP User Group <chi...@li...> > Message-ID: <779...@we...> > Content-Type: text/plain; charset=iso-8859-1 > > Coding styles! > > Rich topic... > I don't comment code much- I expect it to be explicit enough with the var > names and such and?commenting DOES take a lot of time (although you can > argue not commenting takes others more time). > I sorta think- (unless there's math involved) your code should be > understandable on it's own. > That said- here are my legacy code/new developer?peeves: > Referencing a variable or function that's included somewhere not apparent > and not commenting where it's defined. > Having variables not clearly delineated in the code like "some > html<?=$junk?>that rambles" > Similarly-?clear spacing between any variables or statements. > for(i=1;1<$garbage;$1+=) is not acceptable! > Variables that are not descriptive or conform to the code base's standard: > $company - is an object. > $companyRow or $arr_company - is an array from db. > (I'm guilty of mixing camel case and underscores so I can't complain here) > And Alec's lament double trued- code repition. Has this been done before? > Could it be?moved into a class? > This happens a billion times over with javascript which, is the buggiest > anyway so it's triple bad. > That one will make me pop off. > Confess- I love ternary! > -Rant Off- > > I do one thing though I don't see a lot elsewhere- > When I have specific code blocks for one 'domain' (if you will) in a work > file, I use centered comments because it's easier to scan mulitple blocks > that way. > //-------------------------------------------------------------------------- > this be special code block for?ar > holds?-------------------------------------------------------------------->> > > Matt > > > ________________________________ > From: Anacreo <an...@gm...> > To: Chicago PHP User Group <chi...@li...> > Sent: Friday, July 3, 2009 3:58:51 PM > Subject: Re: [chiPHPug-discuss] Anyone up for code sample maturity > mentoring? > > I couldn't agree with Matt's response more... if they just said the code > was > not mature enough, they probably didn't think the example was appropriate. > Did they give you a few example problems and ask for you to resolve them or > did you just provide some code samples out of a portfolio? > Do you want to provide one or two of your examples and maybe we could give > you some examples of how to solve the problem? > ? Some things that drive me nuts when hiring: > ? ? *? "Young" programmers who think they're so cool because they've > mastered the ternary operator, : ?, and use it to illegibility -- honestly > don't bother using it at all... > ? ? *? Mixed variable and formatting styles within your code, shows a lot > of > cut and paste action... > ? ? *? No variable style at all -- Pick a standard and use it... > ? ? *? Skipping language constructs, don't skip ;'s {}'s ()'s or []'s... > ? ? *? Code repetition -- if you're repeating the same code chances are you > shouldn't be... > ? And finally code commenting... > ? ? Every procedure, variable, and > definition should be clearly commented with EXACTLY what it does. > > ? At the end of the day OOP vs non-OOP doesn't matter so much to ME as much > as some other people stress it, if you write clear fundamentally good code, > you'll get the job over someone who doesn't have OOP examples or not... > > > Also is there ingenuity in the code...? The one thing that drives me batty > is hard coded code... if you can make it extensible do it...? Drawing a > table?, make it as dynamic, robust and extensible as possible so it can be > the foundation of future work... If you have something that goes beyond > just > standard work that defines your abilities you may try something like that > (even in a somewhat raw state). > > Alec > > On Fri, Jul 3, 2009 at 3:01 PM, matt donohue <mm_...@ya...> wrote: > > > Hey Bryan, > > > > Excellent question. > > > > I would bet the vacations days (I don't get to take) that they never got > > too far into your code. > > Just my opinion- but, when people ask for code samples they want original > > examples exclusively. > > I think less is always more when it comes to code samples (offer more > > later!) and (again) I would ONLY show original code and specifically > > examples of solving real world problems (not conceptual applications). > > Small code chunks (3 or 4 max) of larger classes, modules or utility > > classes that demonstrate your coding methods or philosophy dealing with > > actual problems. > > (I mix my samples with utility functions, class methods and even > > Javascript, AJAX and JSON.) > > Generally you would tailor the samples you choose based on the job > > description and you would describe why you chose the examples > > and how they fit into the the position you are applying for. > > Think of the hiring questions they would be asking? Can he work with a > > large existing code base. Is he good working with a database? > > Is he more of a back-end developer or does he know CSS, AJAX and > > Javascript? Can he work on his own or does he need supervision? > > Do you: borrow code, use frameworks extensively, have your developed your > > own framework/class base? > > The real question you should answer for them is how will YOU solve their > > problems. > > If you don't have a long work history this is difficult and could be the > > reason they would mention maturity. > > I would say offhand, your example is asking a lot from the prospective > > employee. Not that it doesn't demonstrate a thorough understanding of PHP > > concepts. > > It's more thorough than I code. > > I (personally) would never dig through a code sample like that to hire > > someone. > > You don't mention your work experience but, if it is minimal I would say > > the odds of getting a job requiring code samples is limited. > > That's not a mentoring position which, is what I believe you would want? > No > > one is going to hire someone who can 'conceptually' do the job for > something > > more front-line. So, in that vein I'm thinking your in-between a bubble > of > > not being an intern/trainee but, without enough 'real' experience to > cement > > a Jr Dev position. > > Generally- code samples are a sanity check, and not why you are actually > > hired. > > Even with years of experience you'll find you are under qualified for > some > > positions and over qualified for others so, I wouldn't dwell on it much > and > > keep trying. > > > > I can send you an old example of a cover letter and code samples for > > reference- email me. I'm sure they are embarassing. > > > > Matt > > > > > > > > > > ________________________________ > > From: Bryan Fagan <bry...@gm...> > > To: chi...@li... > > Sent: Friday, July 3, 2009 12:44:58 PM > > Subject: [chiPHPug-discuss] Anyone up for code sample maturity mentoring? > > > > Hello, All. > > > > A recruiter recently told me that one of her clients--who was > specifically > > looking for a PHP developer--said that my code sample didn't show the > level > > of "maturity" that the client was looking for. Hmmm, ok. Can anyone help > me > > on my path to maturity with some constructive criticism of my code > sample? > > > > I thought my code through and imagined it to be pretty good stuff, but > > evidently I've got some growing to do. I certainly cannot claim to be a > PHP > > expert, but experience and reading have brought me through enough levels > of > > bad and immature code hell to imagine that I am well into the > intermediate > > range. I originally considered providing classes from my portfolio > website, > > which is a Zend Framework-based MVC setup with an XML database, but > decided > > instead to write a small command-line application from scratch so that a > > potential employer could run it with as few setup hassles and snags as > > possible. I set out to make sure that I included the following elements, > > which generally constitute what I believe to be indicative of mature PHP > > code: > > > > * standard OOP principles, including high decoupling and good > > encapsulation, > > inheritance, polymorphism, composition, and aggregation > > * most PHP 5 OOP features, including interfaces, abstract classes, and > > exception handling > > * use of design patterns > > * use of SPL and an external code library (Zend Framework, in this case) > > * file, stream, and XML handling > > * Zend coding standard > > * E_STRICT cleanliness > > > > That's a pretty good checklist, right? And almost all of it made it in. > So > > is the problem in the execution? Is it that I didn't do it "test first" > and > > include the unit tests (that's a skill I'm still working on)? Questions, > > comments, concerns? > > > > I'd appreciate as much insight as anyone has to offer. I'm not asking so > > much for help with a re-write as for help understanding what is immature > > about the code or the project as a whole--and what I need to understand > and > > learn to do to have any recruiter think, "Damn, this guy's good! Bring > him > > in." > > > > If you're interested in this mentoring task--or just want to point and > > laugh--you can download the zipped-up code from my professional website > at > > the address > http://bryanfagan.info/documents/Bryan_Fagan_Code_Sample.zipand > > open it with the password "super good password". > > > > Bryan Fagan > > > > P.S. I am woefully unemployed, so if you see my stuff and know of someone > > looking for a LAMP developer who might think anything even close to "this > > guy's good," I would be eternally grateful if you'd pass on my contact > > information or send me a link as appropriate. > > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > > chiPHPug-discuss mailing list > > chi...@li... > > https://lists.sourceforge.net/lists/listinfo/chiphpug-discuss > > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > > chiPHPug-discuss mailing list > > chi...@li... > > https://lists.sourceforge.net/lists/listinfo/chiphpug-discuss > > > > ------------------------------------------------------------------------------ > _______________________________________________ > chiPHPug-discuss mailing list > chi...@li... > https://lists.sourceforge.net/lists/listinfo/chiphpug-discuss > > > ------------------------------ > > > ------------------------------------------------------------------------------ > > > ------------------------------ > > _______________________________________________ > chiPHPug-discuss mailing list > chi...@li... > https://lists.sourceforge.net/lists/listinfo/chiphpug-discuss > > > End of chiPHPug-discuss Digest, Vol 39, Issue 1 > *********************************************** > |
From: Bryan F. <bry...@gm...> - 2009-07-03 23:47:10
|
Thanks for your input, guys. On Fri, Jul 3, 2009 at 6:17 PM, Bryan Fagan <bry...@gm...> wrote: > Thanks for your input, guys. > > > On Fri, Jul 3, 2009 at 5:42 PM, < > chi...@li...> wrote: > >> Send chiPHPug-discuss mailing list submissions to >> chi...@li... >> >> To subscribe or unsubscribe via the World Wide Web, visit >> https://lists.sourceforge.net/lists/listinfo/chiphpug-discuss >> or, via email, send a message with subject or body 'help' to >> chi...@li... >> >> You can reach the person managing the list at >> chi...@li... >> >> When replying, please edit your Subject line so it is more specific >> than "Re: Contents of chiPHPug-discuss digest..." >> >> >> Today's Topics: >> >> 1. Anyone up for code sample maturity mentoring? (Bryan Fagan) >> 2. Re: Anyone up for code sample maturity mentoring? (matt donohue) >> 3. Re: Anyone up for code sample maturity mentoring? (Anacreo) >> 4. Re: Anyone up for code sample maturity mentoring? (matt donohue) >> >> >> ---------------------------------------------------------------------- >> >> Message: 1 >> Date: Fri, 3 Jul 2009 12:44:58 -0500 >> From: Bryan Fagan <bry...@gm...> >> Subject: [chiPHPug-discuss] Anyone up for code sample maturity >> mentoring? >> To: chi...@li... >> Message-ID: >> <9ec...@ma...> >> Content-Type: text/plain; charset=UTF-8 >> >> Hello, All. >> >> A recruiter recently told me that one of her clients--who was specifically >> looking for a PHP developer--said that my code sample didn't show the >> level >> of "maturity" that the client was looking for. Hmmm, ok. Can anyone help >> me >> on my path to maturity with some constructive criticism of my code sample? >> >> I thought my code through and imagined it to be pretty good stuff, but >> evidently I've got some growing to do. I certainly cannot claim to be a >> PHP >> expert, but experience and reading have brought me through enough levels >> of >> bad and immature code hell to imagine that I am well into the intermediate >> range. I originally considered providing classes from my portfolio >> website, >> which is a Zend Framework-based MVC setup with an XML database, but >> decided >> instead to write a small command-line application from scratch so that a >> potential employer could run it with as few setup hassles and snags as >> possible. I set out to make sure that I included the following elements, >> which generally constitute what I believe to be indicative of mature PHP >> code: >> >> * standard OOP principles, including high decoupling and good >> encapsulation, >> inheritance, polymorphism, composition, and aggregation >> * most PHP 5 OOP features, including interfaces, abstract classes, and >> exception handling >> * use of design patterns >> * use of SPL and an external code library (Zend Framework, in this case) >> * file, stream, and XML handling >> * Zend coding standard >> * E_STRICT cleanliness >> >> That's a pretty good checklist, right? And almost all of it made it in. So >> is the problem in the execution? Is it that I didn't do it "test first" >> and >> include the unit tests (that's a skill I'm still working on)? Questions, >> comments, concerns? >> >> I'd appreciate as much insight as anyone has to offer. I'm not asking so >> much for help with a re-write as for help understanding what is immature >> about the code or the project as a whole--and what I need to understand >> and >> learn to do to have any recruiter think, "Damn, this guy's good! Bring him >> in." >> >> If you're interested in this mentoring task--or just want to point and >> laugh--you can download the zipped-up code from my professional website at >> the address http://bryanfagan.info/documents/Bryan_Fagan_Code_Sample.zipand >> open it with the password "super good password". >> >> Bryan Fagan >> >> P.S. I am woefully unemployed, so if you see my stuff and know of someone >> looking for a LAMP developer who might think anything even close to "this >> guy's good," I would be eternally grateful if you'd pass on my contact >> information or send me a link as appropriate. >> >> >> ------------------------------ >> >> Message: 2 >> Date: Fri, 3 Jul 2009 13:01:11 -0700 (PDT) >> From: matt donohue <mm_...@ya...> >> Subject: Re: [chiPHPug-discuss] Anyone up for code sample maturity >> mentoring? >> To: Chicago PHP User Group <chi...@li...> >> Message-ID: <753...@we...> >> Content-Type: text/plain; charset=iso-8859-1 >> >> Hey Bryan, >> >> Excellent question. >> >> I would bet the vacations days (I don't get to take) that they never got >> too far into your code. >> Just my opinion- but, when people ask for code samples they want original >> examples exclusively. >> I think less is always more when it comes to code samples (offer more >> later!) and (again) I would ONLY show original code and specifically >> examples of solving real world problems (not conceptual applications). >> Small code?chunks (3 or 4 max) of larger classes, modules?or utility >> classes that demonstrate your coding methods or philosophy dealing with >> actual problems. >> (I mix my samples with utility functions, class methods and even >> Javascript, AJAX and JSON.) >> Generally you would tailor the samples you choose?based on?the job >> description and you would describe why you chose the examples >> and how they fit into the the position you are applying for. >> Think of the hiring questions they would be asking? Can he work with a >> large existing code base. Is he good?working with a?database? >> Is he more of a back-end developer or does he know CSS, AJAX and >> Javascript? Can he work on his own or does he need supervision? >> Do you: borrow code, use frameworks extensively, have your developed your >> own framework/class base? >> The real question you should answer for them is?how will YOU solve their >> problems. >> If you don't have a long work history this is difficult and could be the >> reason they would mention maturity. >> I would say offhand, your example is asking a lot from the prospective >> employee. Not that it doesn't demonstrate a thorough understanding of PHP >> concepts. >> It's more thorough than I code. >> I (personally) would never dig through a code sample like that to hire >> someone. >> You don't mention your work experience but, if it is minimal I would say >> the odds of getting a job requiring code samples is limited. >> That's not a mentoring position which, is what I believe you would want? >> No one is going to hire someone who can 'conceptually' do the job for >> something more front-line. So, in that vein I'm thinking your in-between a >> bubble of not being an intern/trainee but, without enough 'real' experience >> to cement a Jr Dev position. >> Generally- code samples are a sanity check, and not why you are actually >> hired. >> Even with years of experience you'll find you are under qualified for some >> positions and over qualified for others so, I wouldn't dwell on it much and >> keep trying. >> >> I can send you an old example of a cover letter and code samples for >> reference- email me. I'm sure they are embarassing. >> >> Matt >> >> >> >> >> ________________________________ >> >> >> ------------------------------ >> >> Message: 3 >> Date: Fri, 3 Jul 2009 15:58:51 -0500 >> From: Anacreo <an...@gm...> >> Subject: Re: [chiPHPug-discuss] Anyone up for code sample maturity >> mentoring? >> To: Chicago PHP User Group <chi...@li...> >> Message-ID: >> <69c...@ma...> >> Content-Type: text/plain; charset=ISO-8859-1 >> >> I couldn't agree with Matt's response more... if they just said the code >> was >> not mature enough, they probably didn't think the example was appropriate. >> Did they give you a few example problems and ask for you to resolve them >> or >> did you just provide some code samples out of a portfolio? >> Do you want to provide one or two of your examples and maybe we could give >> you some examples of how to solve the problem? >> Some things that drive me nuts when hiring: >> * "Young" programmers who think they're so cool because they've >> mastered the ternary operator, : ?, and use it to illegibility -- honestly >> don't bother using it at all... >> * Mixed variable and formatting styles within your code, shows a lot >> of >> cut and paste action... >> * No variable style at all -- Pick a standard and use it... >> * Skipping language constructs, don't skip ;'s {}'s ()'s or []'s... >> * Code repetition -- if you're repeating the same code chances are you >> shouldn't be... >> And finally code commenting... >> Every procedure, variable, and >> definition should be clearly commented with EXACTLY what it does. >> >> At the end of the day OOP vs non-OOP doesn't matter so much to ME as much >> as some other people stress it, if you write clear fundamentally good >> code, >> you'll get the job over someone who doesn't have OOP examples or not... >> >> >> Also is there ingenuity in the code... The one thing that drives me batty >> is hard coded code... if you can make it extensible do it... Drawing a >> table?, make it as dynamic, robust and extensible as possible so it can be >> the foundation of future work... If you have something that goes beyond >> just >> standard work that defines your abilities you may try something like that >> (even in a somewhat raw state). >> >> Alec >> >> >> >> ------------------------------ >> >> Message: 4 >> Date: Fri, 3 Jul 2009 15:42:50 -0700 (PDT) >> From: matt donohue <mm_...@ya...> >> Subject: Re: [chiPHPug-discuss] Anyone up for code sample maturity >> mentoring? >> To: Chicago PHP User Group <chi...@li...> >> Message-ID: <779...@we...> >> Content-Type: text/plain; charset=iso-8859-1 >> >> Coding styles! >> >> Rich topic... >> I don't comment code much- I expect it to be explicit enough with the var >> names and such and?commenting DOES take a lot of time (although you can >> argue not commenting takes others more time). >> I sorta think- (unless there's math involved) your code should be >> understandable on it's own. >> That said- here are my legacy code/new developer?peeves: >> Referencing a variable or function that's included somewhere not apparent >> and not commenting where it's defined. >> Having variables not clearly delineated in the code like "some >> html<?=$junk?>that rambles" >> Similarly-?clear spacing between any variables or statements. >> for(i=1;1<$garbage;$1+=) is not acceptable! >> Variables that are not descriptive or conform to the code base's standard: >> $company - is an object. >> $companyRow or $arr_company - is an array from db. >> (I'm guilty of mixing camel case and underscores so I can't complain here) >> And Alec's lament double trued- code repition. Has this been done before? >> Could it be?moved into a class? >> This happens a billion times over with javascript which, is the buggiest >> anyway so it's triple bad. >> That one will make me pop off. >> Confess- I love ternary! >> -Rant Off- >> >> I do one thing though I don't see a lot elsewhere- >> When I have specific code blocks for one 'domain' (if you will) in a work >> file, I use centered comments because it's easier to scan mulitple blocks >> that way. >> //-------------------------------------------------------------------------- >> this be special code block for?ar >> holds?-------------------------------------------------------------------->> >> >> Matt >> >> >> |