8 ms·
Ask HN: I'm starting a new job as a PHP developer tomorrow
I have to admit I haven't touched a single line of PHP code in more than 8 years.
I've been working with Rails remotely since 2008 (~7 years in total). However, remote work has died out and decreased dramatically.
Is there anything you guys could recommend? I haven't worked with PHP in years so I'm worried about my performance with PHP on the new job.
I know how to program but I'm not familiar with PHP anymore, in fact I don't recall anything about it.
The reason I'm going back to PHP? Sorry, it's not my decision, and there aren't many local jobs in my area, so I'm taking what I can, and that's work with PHP at the moment.
Hopefully I'll find other jobs with saner languages in the future.
One other thing I want to mention is that I'm a Linux person, I can't use anything else. However, I've noticed that the company that wants to hire me is a Windows shop, they use Windows mostly (Windows desktops, Sublime Text, and so on).
Do you guys think it's acceptable if I use Arch Linux on a VM (VirtualBox) and I fullscreen the VM? I use things like i3-wm and vim and I'm really used to tiling WM these days, so using Windows would be very painful.
I asked if I could install Arch Linux on bare metal but they said no. They said I have to use a VM. They also mentioned I can't bring my own hardware.
I've been using Linux for 15 years and I currently use Arch Linux at home and on my laptop.
Suggestions welcome.
- stephenr 11y agoThis is why we can't have nice things.
- cholmon 11y agoStart with http://www.phptherightway.com/ http://www.phptherightway.com/
- wyclif 11y agoI came here to say exactly this. Glad I scrolled down before creating a dupe. Seriously, this is the most helpful thing I keep coming back to. You don't have to read everything linked to here all at once; just progressively keep looking at the resources linked to here as slowly as you need to in order to understand what is going on.
- grover_hartmann 11y agoThanks for this reference.
- tdy721 11y agoI would suggest you get a PHP server going right away. Install WordPress or another PHP framework. Make the server do something useful. Use PHP to receive POSTed CURL messages. Use PHP... and you will become familiar with PHP.
- gargarplex 11y agoI am shocked you can't get remote work with 7 years exp. Rails.
- fowkswe 11y agoThis was my thought. I'm happily employed so I haven't been looking, but are others finding that Rails work is drying up as well?
- zizee 11y agoCurious to know where the original poster is located?
- jbhatab 11y agoI am pretty new to rails, 3 years, and I haven't had any trouble finding work. Remote work is definitely not the easiest thing to find but it hasn't been that hard to find. Although I have a front end speciality which is much more in demand than traditional backend heavy developers right now.
- Albright 11y agoI'm even more shocked OP got a job hacking a language they haven't touched in over eight years.
- e12e 11y agoHow so? It's not like OPs been working with the team in question anyway. So there's going to be a learning curve, the least of which is probably standard library/syntax changes?
- deftnerd 11y agoModern PHP is a sane language. A lot has changed in 8 years. I second Cholmon with his recommendation for phptherightway. I also highly recommend using a modern and developer friendly framework like Laravel. You can learn about it quickly by watching some tutorials at LaraCasts.com. Check out the Laravel 5 Fundamentals series which is free. https://laracasts.com/series/laravel-5-fundamentals https://laracasts.com/series/laravel-5-fundamentals
- tomasien 11y agoPHP is totally fine, it gets a bad rep it doesn't deserve. It's not as elegant as Python or Ruby but it's acceptable and it'll be more familiar than you think. If you're looking for the Railsy-est thing in PHP it's Laravel. If you can move them to Laravel (if it would be a good MVC fit) you'll be happy you did. Otherwise, don't stress about it too much.
- digitalzombie 11y agoIts bad rep was well deserve with PHP 4 and below. It wasn't OOP at the start and had weird warts. As PHP mature it's much better than its past and have fixed some complaints but unfortunately the bad rep still stuck. Plus there are some fundamental warts that you can't just fix. In general, I'm happy that PHP is thriving and continue to improve. It looked bleak for a while and I regretted choosing PHP over Python or Ruby for web dev. I find that it doesn't matter much if you're using MVC frameworks such as Laravel. You hardly need to memorize or use crazy stuff with PHP and most of the time you're just googling framework stuff how to grab param from route, etc... I've done Scala Play framework that that language get in the way a lot on top of googling how to do stuff with play framework. But I suspect that this observation is because more of dynamic language vs type language more than PHP vs Scala. -- I think in general it's just language evolve and got better. Perl started web dev and then PHP was better then Python came along and after that Ruby. With each subsequent programming languages the languages got prettier and had more thoughts into the design.
- jakejake 11y agoIf you look into composer and start writing code using and contributing packages, you may be surprised at how similar modern PHP development is to other popular languages. Also look at the PSR standards, especially for auto loading at http://www.php-fig.org/psr/ http://www.php-fig.org/psr/
- bkanber 11y agoPHP is a decent language and ecosystem these days. Perhaps one of the minority of ecosystems that are actually on the rise rather than on the decline. It still has lots of warts, but whatever. Forget the idea that PHP is "taking what you can" or not a sane language -- you're in it now so might as well get up to speed with best practices and use it the best you can. I promise you can build compelling software in PHP. http://www.phptherightway.com/ http://www.phptherightway.com/ is a great resource for most things you'll need to know when working with modern PHP. Definitely start here. Familiarize yourself with the ecosystem by poking at the most popular frameworks, at least skimming the docs to understand the types of things they provide and how they're structured: Zend, Symfony and Symfony Components, Laravel, Slim, Silex. Study WordPress, the "stereotypically bad" piece of software, for anti-patterns, but there's also a lot of good stuff in there and some improvements on the roadmap. Composer is the npm of PHP. Check out packagist (horrible UI though) or browse github's PHP repos to find some of PHP's commonly used packages, like Monolog and phpunit. You can build a simple app in minutes in Laravel, and even put together a small product MVP using 90% boilerplate code within a matter of days on Laravel. Since there's a growing ecosystem for these tools now, it's getting easier and easier to write quality software in PHP, and it's actually a relatively pleasant experience. Plus shipping and managing PHP in production is a breeze -- it's the most widely supported web platform, after all. We've got support on great CI systems like circleci and scrutinizer-ci. Anyways, start there and good luck!
- joshstrange 11y agoQuick rundown (in no particular order): * The language has comes leaps and bounds since you last used it * Install composer and learn how to use it (PHP package manager) * Read up on Laravel, IMHO it's the best PHP Framework out there right now. They guy behind it is a genius and has great vision for it. * You'll want to use nginx + php5-fpm (No more apache and php_mod) * Check our PHPStorm, if you are going to use an IDE you can't bear intelij IMHO and PHPStorm has support for a myriad of things * ORM's have greatly improved, even if you aren't going to use Laravel read up on it's ORM to see what is possible * Much more OO now especially when it comes to interacting with the DB (no more mysql_connect/mysql_query nonsense)
- minot 11y agoAs a satisfied PHPstorm user, I'd like to say that the parent probably meant beat when they wrote bear > if you are going to use an IDE you can't bear intelij if you are going to use an IDE you can't beat intelij. They are also the people behind resharper. Readers, if you are a student, please check out https://www.jetbrains.com/student/ https://www.jetbrains.com/student/
- Terr_ 11y agoAnother reason to use PHPStorm: It's cross-platform, so you can use it with your employer's machines as well as on your own home/VM environment.
- joemaller1 11y agoPHP isn't as bad as it used to be. Yes fundamental operator order is erratic and I'm forever googling basic functions, but the ecosystem has produced some good stuff over the past couple years. Read up on Composer and Packagist. It's basically NPM, Gems, or PyPi for PHP. There are now solid interoperable libraries for most common tasks. - https://getcomposer.org https://getcomposer.org - https://packagist.org https://packagist.org Laravel is a great framework, but quite a bit of what's out there seems to be built on the Symfony foundation. - http://laravel.com http://laravel.com - http://symfony.com http://symfony.com There are also great coding guidelines and tools that are evolving. The PHP Framework Interoperability Group has produced some solid coding standards and tooling has followed. - http://www.php-fig.org http://www.php-fig.org WordPress...it makes me sad. But it's ubiquitous. If you're stuck doing WP work, take a look at the Roots project. It's a sane, modern approach with good tooling. - https://roots.io https://roots.io
- gtirloni 11y agoI've been called a few times to troubleshoot slow PHP websites only to discover they were using Symfony and could not sustain 5req/sec on fairly beefy hardware. All kinds of PHP optimizations couldn't make it run much faster (which complicated the infrastructure a lot later on). The last time was 1 year ago so unless something impressive happened since then, I would suggest against it.
- giaour 11y agoSomething impressive must have happened, as the symphony projects I've worked on recently have been able to support far more load than what you're describing on ec2 micro instances.
- Gigablah 11y agoThat tends to happen if you use all the bells and whistles that come with the standard framework boilerplate, like annotations and the Doctrine ORM. Sometimes Silex is all you need.
- ohashi 11y agoDid you actually diagnose what was causing it to be slow? Something like NewRelic might help break down where the actual slowdown is versus saying it was the framework.
- CamTin 11y agoDon't worry. PHP itself shouldn't be an issue. It's bog standard ALGOL-y syntax with some weird corner cases that aren't that hard to avoid. The bigger gotcha will be getting used to the execution model, if it's standard LAMP-y type application hacking. Remember that, in this style of app, all of your state has to be either explicitly stored in a backend or in the browser cookies. The script begins not knowing anything, lives briefly, excreting HTML or JSON, and then dies, leaving behind only what it's explicitly saved. In some ways it's more complex than a Rails-type model, and in others it's simpler. In any case, you should be up to speed in a week or two of hacking at it full time.
- eli 11y agoAren't there pretty popular PHP frameworks that take care of magic like parsing variables and routing URLs and persisting state?
- krapp 11y agoOf course, tons. But there's also a lot of PHP out there that doesn't use frameworks. Knowing how things like sessions and headers and requests actually work is probably more immediately useful for PHP than other languages, for which there's likely one de facto framework that everyone uses by default. In PHP-land you're just as likely to walk into a job where interns have been hacking crazy stuff into a Simple Machines forum for the last year as encounter something built on a framework. And of course, mixing javascript, css and php together with whatever happens to come out of a database query (which is encoded in who knows what) is not at all uncommon, so even frontend knowledge is helpful.
- grover_hartmann 11y agoWhat about the fact that they all are using Windows on the desktop? I'm a Linux person and I can't use anything else. I've been using Linux for 15 years. I asked if they can let me install Linux on the computers, they said I have to use a VM. I'm fine with a VM but I also need my window manager of choice (i3-wm) and so on. Would it be okay if I install Arch Linux on VirtualBox and I fullscreen the VM? What about performance then? All the other developers are using Windows and putty shells and Sublime Text as their editor. I asked if I could bring my own laptop but they said I can't. Suggestions welcome.
- eli 11y agoHave you actually tried VirtualBox? Depending on the underlying hardware, the performance really might not be an issue.
- e12e 11y agoI'm not sure VirtualBox have an edge compared to "native" Hyper-V. If you're running windows 8.1 pro (which would be the sane choice, before 10 arrives) -- you have to change the boot options[1] if you want proper hw support for VirtualBox. Changing from Linux to Windows is indeed rather painful. As others have mentioned, depending on deployment/process etc -- you might still be better off trying to live on the windows side. I'm not a windows dev, but from what I've seen mentioned by others -- running php on windows w/IIS and SQL server works fine -- but you'll want to have a test/dev environment that matches prod -- or you'll just constantly run in to pain points -- especially if the team isn't on board/interested in investing in a full heterogeneous environment. For a small example with node, see eg: https://github.com/keithamus/npm-scripts-example/issues/5 https://github.com/keithamus/npm-scripts-example/issues/5 Hopefully your new team has some automation in place -- it's unlikely it'll work out of the box under linux if it's never been tested/linux has never been a requirement. On the bright side, vim works fine under windows, and with some mingw32/64[2], things aren't entirely painful. If you're used to script things with ruby, that should be even easier. Having to work with cmd.exe and it's nasty find.exe rather than grep, feels like running with one leg tied behind your back. Lack of proper tabbed/keyboard-friendly window manager is probably the biggest productivity drain -- thought there are some alternatives for that too[3]. [1] http://www.hanselman.com/blog/SwitchEasilyBetweenVirtualBoxAndHyperVWithABCDEditBootEntryInWindows81.aspx http://www.hanselman.com/blog/SwitchEasilyBetweenVirtualBoxA... [2] http://msys2.github.io/ http://msys2.github.io/ [3] https://github.com/fuhsjr00/bug.n https://github.com/fuhsjr00/bug.n
- getsat 11y ago>They said I have to use a VM. They also mentioned I can't bring my own hardware. >Suggestions welcome. Keep looking for a new job. I guarantee this is the tip of the nightmare iceberg you're about to hit. I hope I am wrong, but I've seen this enough times before to know that I'm probably not.
- grover_hartmann 11y agoCan you elaborate on this?
- akg_67 11y agoBased on your post, my concern is that you will stick out as a "sore thumb" insisting on using Arch Linux in a Windows shop. Basically, you are signaling to your employer and coworkers that you will be difficult to work with. Please spend first 90 days building a good reputation and impression for yourself with your supervisor and coworkers and later use your reputation to drive any changes. By insisting on using Arch Linux, you will be wasting yours and others time in accommodating your preferences in recreating the workflow and tools that everyone else is used too. You should focus on learning the tools and workflow used by your employer. You are no longer a freelancer who can chose their own tools and workflow, you are a cog in a machine now and learn how machine operates. Your first priority should be to learn Windows and Development tools used by your coworkers. Find out what PHP framework and technology stack being used. And learning them is your next priority.
- Osiris 11y agoThe company likely has a processes setup around the fact that everyone is running their dev environments the same way. Trying to do things differently without yet understanding their process will only complicate things. For example, at my job everyone runs OS X, so build scripts, etc are all written with that assumption in mind.
- akg_67 11y agoAgree with you 100% and that is the point of my comment. Understand the tools, workflow and processes used by the employer first.
- grover_hartmann 11y agoI'll do that. I've already asked what they use for their stack, they mentioned they don't use any PHP frameworks. They mentioned they use OOP and things like that, but their codebase appears to be plain PHP with no frameworks.
- mauricemir 11y agoYour developing on individual developers machines - you need to change jobs Stat!
- bliti 11y agoBringing your own hardware is not allowed in the majority of places (not located in SV). Its a security matter. Running a VM is fine. That shows they are flexible. you might run into issues if their whole development environment is built around windows and windows tools. Be open to it. PHP is a language like any other. it has good and bad parts. what might prove useful is to focus on learning the codebase. Good luck!
- kijin 11y ago> it's not my decision, and there aren't many local jobs in my area, so I'm taking what I can, and that's work with PHP at the moment. > I asked if I could install Arch Linux on bare metal but they said no. They said I have to use a VM. They also mentioned I can't bring my own hardware. Beggars can't be choosers :( Whether your Linux VM setup is acceptable will depend entirely on what the rest of the shop is used to. For example, if they develop on Windows desktops and deploy to Windows servers, you may need to use Windows scripts and test for Windows-specific corner cases, which would be difficult to do on a Linux VM. You may need to adjust all of your tools to use Windows line endings (CRLF). You may find that some of your tools don't work correctly on a vboxsf or samba filesystem. Be prepared to make compromises where necessary. On the other hand, if they deploy to Linux servers, your knowledge of Linux and your VM might end up being a valuable asset for the shop. In any case, don't say that you "can't use anything else". Of course you can. Learning to use a new OS or editor is not terribly different from learning a new language. If you can learn a new language, you can certainly learn to use Sublime Text or whatever. Unwillingness to try a new tool just because it's outside of your comfort zone could reflect poorly on you, no matter how well justified you think your choices are. Your employer has shown flexibility by letting you run a VM. Try to show some flexibility in return.
- e12e 11y agoForgot one thing in my previous comment: Active Directory/Kerberos. For deployment etc - it's not likely to be feasible to get single-sign on to work correctly without running on your windows Desktop/uid. If they won't let you bring your own hw, they're not likely to allow you to join your vm to the AD domain either. Unless they're deploying to Linux and/or using github/bitbucket and/or plain pw auth etc.
- vhb 11y agoI did this mistake once... I'm also a linux guy, but I was working in a company where everyone was using Os X. I did install an arch on my laptop and used it for almost a year. Now, with the hindsight, it was a big mistake : it did make me loose so much time ! I did had to fix one script out of 2, the build system was not working properly, etc... And linux and Os X are not that different ! Don't do that... Use the tools that you company gives you, and try to fit in the company. Otherwise, you will be seen as the guy who does not want to do stuff the same way as the others. Even if everything goes well with your coworkers, you will end up waisting time every day. You can install vim on windows (and sublime text does have quite a few almost decent vim plugins). You will miss i3wm a lot, but you don't need it to do good work. Learn how to use the most efficiently the tools your company gives you (Windows and PHP). If you want to change something (at least for your first couple of month), try to change something that will make everyone life easier, not more complicated.
- grover_hartmann 11y agoI don't think it's a mistake at all to prefer to run GNU/Linux on a OS X or Windows environment. If they have trouble helping you just because you run a different OS then they don't sound like they're skilled enough to begin with. And it's probably them who can't adapt rather than you.
- imakesnowflakes 11y ago>Do you guys think it's acceptable if I use Arch Linux on a VM (VirtualBox) and I fullscreen the VM? Yes. This should work provided you have a system with memory > 8GB, but you might face some issues when using a folder shared from windows. If something involves symlinks, then tread carefully. And file access to a shared folder is pretty slow too. I am not going into how bad of an idea is going back to php since you have already considered it. But I will just say that php is every bit as bad as it was. I recommend /r/lolphp for an updated list of php gotchas...
- okbake 11y agoI wouldn't say that php is every bit as bad as it was 8 years ago, its certainly made a lot of progress. There are now namespaces, generators/iterators, closures, traits, interfaces, type hinting, and with composer theres even a dependency manager. The zend engine rework coming later this year in php7 gives really promising performance boosts and some other niceties like ASTs. Granted some (most?) of these modern php features aren't quite as nice as they are in other languages, and there is still some weirdness (/r/lolphp as you mentioned), and an inconsistently named standard library... But php has made some strides in the past 8 years. Once you're aware of the gotchas its not as bad as everyone makes it out to be.
- imakesnowflakes 11y agoThis is the important bit > Once you're aware of the gotchas (and keep your head stuffed with this useless info the whole time you are working with PHP) its not as bad as everyone makes it out to be.. First, you need to be aware of the gotchas. But this is not possible because, 1. We are still counting (take a look at /r/lolphp). 2. Even experienced (8+ years) php programmers know a very small percentage of the php gotchas. See this http://www.reddit.com/r/PHP/comments/2zhg6z/how_true_is_this_php_bashing/cpjhx04 http://www.reddit.com/r/PHP/comments/2zhg6z/how_true_is_this.... You can see one commenter. who is an experienced php programmer who was not aware of that at the time. I myself had 8 years of experience when I was bitten by this bug..ahem..feature. So unless you haven't gone through all of /r/lolphp and commited the relavent ones to your memory and check them for every single line of code you write, you are bound to be bitten by one of those. 3. And documentation does not help. Even php core develpers agree that some of the important parts of documentation is incorrect but NO ONE CARES about things like that. Every one is out to implement flashy new stuff that fanboy can brag about. Even the existing documentation is does not go much deep into details. eg this is the php.net page regarding exception handling http://php.net/manual/en/language.exceptions.php http://php.net/manual/en/language.exceptions.php compare this to Pythons documentation https://docs.python.org/3/tutorial/errors.html https://docs.python.org/3/tutorial/errors.html https://docs.python.org/3/reference/compound_stmts.html#try https://docs.python.org/3/reference/compound_stmts.html#try If you want to find how a return statement behaves inside of a finally block, the info simple isn't present in the php's documentation. Because "who cares because we copy stuff from java, so we probably does not not what is important to document anyway.".. I mean, it is very subtle and the recent 'facelift' that php received makes it hard to see its truly shitty nature for newcomers. When they look, they see all the shinny new features (often half assed) and think that php is on the same level as Python or whatever....
- fsloth 11y agoIf it's a small shop then depending on the atmosphere being the only linux-vm guy might cause undue friction? If you are really talented then sticking out of the crowd with odd stuff might be considered as a positive characteristic but since you are not yet a PHP god I would approach the job from the point of view of learning their tools first - it's just me, though so I would not presume to give you any tactical advice. A few things come to mind of Windows if you choose to give it a try. 1. Vim for windows works pretty well 2. It's pretty fast to switch to a different application context on windows using win-key. On windows 7 still win + 1-9 switches to the cirresponding application on task bar - and the order of applications can be reordered by dragging a mouse. Windows nowadays is pretty solid tech but it's aimed at a general demographic so finding all the power user levers take a while. Of these: -powershell ISE is a really nice command line (well, better than cmd) and it comes out of the box - some people swear by automation through autohotkey scripting - win-r is a fast way to start apps and scripts - hitting win key and typing the name of an application is a fast way to start applucations by just the exe name Good luck on the new job!
- bdg 11y agoPHP is quite possibly one of the best languages to use for a project these days. The community is massive and full of people who are deeply passionate about best practices. There are more quality frameworks than you can hope to keep up with (if your ranking of quality is the meager toy that rails is, you'll be happy here). The frameworks are really good at abstracting away the awful API choices the language makes. That said, if you're writing in "PHP" instead of a given set of frameworks... you're working at a company that hired someone who wrote a lot of code with no experience of what makes a good system... but you'll soon find the JS looks exactly like that too, because that's not a PHP problem. For your OS: You can get windows analogues to all those things (in the case of vim, you can also just... use vim on windows). They offered me a mac or a windows machine where I work and I opted for mac because it's just BSD4... but like... the WM is a pile, and I wish I was using Windows98 over mac. But none of that has stopped me from making huge contributions to the team.
- mathgeek 11y ago> I wish I was using Windows98 over mac. You can always install Windows via Boot Camp. There's little reason to even have this kind of discussion these days.
- sparrish 11y agoYour dev environment should ALWAYS run the exact same versions of the stack as production. With PHP, there are too many little gotchas between even minor versions.
- mauricemir 11y agoAmen brother/sister. You should ALWAYS be working on a dev server set up identically to the test and live servers. At one place we insisted on having machines from the same production run and ideally all the DASD (disks) would be from the same batch.
- brianwawok 11y agoEh. Sometimes variety is nice. Exposes some new bugs sometime. If your tools are sane, dev how you want.
- mauricemir 11y agoSorry if your developing software professionally you DO NOT take risks like that.
- syntropy 11y agoIf you want to run Windows 7 in a VM using a Linux box, I would recommend using KVM (http://www.linux-kvm.org/page/Main_Page http://www.linux-kvm.org/page/Main_Page) instead of using VirtualBox. I initially tried using Virtualbox to run Windows on Linux... but it had a hard time running multiple applications (multiple Visual Studio's, etc...). When I switched to using KVM, it was light years faster. All performance/reliability issues disappeared instantly. Never going back. So I now have all the goodness of Linux with an almost bare metal Windows VM.
- grover_hartmann 11y agoI agree, KVM on Linux is amazing and there's nothing that comes even close with performance IMHO. However, my problem is that I'm stuck with Windows 7 at work, so I have to use something like VirtualBox to run Arch on it. I'll try getting one of those SATA-over-USB converters and I'll get my SSD to the office, hopefully they'll allow me to boot over USB so I can run Arch and bypass Windows completely.
- homulilly 11y agoPHP and Windows seems like an odd combination to me, but definitely get a feel for how things are run, both in terms of workflow and interpersonal interaction before you start insisting on certain tools/environments. I work at a company that's a windows shop (it's possible to use other operating systems but requires jumping through a bunch of hoops that make it not worth it) but I rolled with it until I got a better feel for things. PHP is honestly a pretty swell language despite its irregularities and reputation amongst people who work with newer, more trendy language. It has a great community, and the language its self keeps getting updated with modern features, even if they're sometimes done in a slightly awkward manner.
- umren 11y agoare you trolling? 1) if you switching from ruby to php because there is no remote jobs.. well, there are plenty of them 2) you didn't touched php for 8 years, so why go php? 3) they are locked to windows and you can't install linux, well, don't go there 4) you can't even bring hardware! wtf! don't go there x2
- grover_hartmann 11y agoNo. 1) Show me where are the remote jobs you're talking about. I've been looking for a long time on different sites, e.g."Who's hiring" (Hacker News), We Work Remotely, and so on. The standard response I always get is: - "Thanks for reply. No this is Full time only." - "Thanks for getting in touch. Unfortunately we are looking for someone to join our London team." - "Unfortunately, we’re not looking for remote engineers at this time." I've got enough of this shit. 2) Because there's nothing else I can find. I don't live in SF where you have a lot of options about where to work and the toolsets you can use. 3) They allowed me to use Linux on a VM so I can use Linux. I'm just stuck with a VM for now and while that's not optimal, it's still better than nothing. I'll try booting Linux from USB and see if they allow me to do this, so I can bypass Windows completely. 4) Lots of companies don't allow this, and this is full time employment, not your cool and fancy startup in SF where they allow you to play video games in the office.
- gremlinsinc 11y agoSounds to me like you're too needy and stuck in your ways, no offense.. I love my ubuntu desktop as much as anything, but there are PLENTY of ways to make windows into winux. gitbash for one, you can install vim, nano, and pretty much all the linux command-line tools onto windows. It's not perfect, but doable...personally I don't like the performance of VM's, they're slow and buggy from time to time. As for php, it's not so bad, especially if you use Laravel as I found moving back and forth from rails to laravel and vice versa they're very comparable frameworks, Laravel mirrors rails in lots of ways better than most php frameworks, if you're doing wordpress God save you. lol
- chrismcb 11y agoUse the tools they provide you. It will be easier, otherwise you will be constantly fighting differences between your version and everyone else. As a professional using a different os shouldn't be that big of a deal. There is a bit of a learning curve, but there always is when you join a new company. What editor do you use? You can probably find something similar on windows. Pretty much every other tool you need the company will provide
- RossM 11y agoPolitically and practically, I'd suggest you use Windows and their tooling to start with. When you're getting started they'll likely need to help you get setup and that's going to be difficult for them if you're using other tools. Later on, you can make more informed decisions about switching tools after getting familiar with their applications. If they run production on Windows as well, there are likely bits of the software that won't be cross-platform (file paths, encodings are common ones). We have a mix at our shop (Windows, OSX and Linux) and I think we only get away with it due to everyone knowing what to avoid (through experience). We still step on each other's toes occasionally. It wouldn't look good if you spent a lot of time at the start fixing things just to get it to work on your platform. I think Sublime has a vim mode (or plugin) that should give you similar keybindings and it has panes a bit like vim. As to getting back to PHP, some good links have already been posted. Get up to date on Composer and PHPUnit, look at whatever framework they're using and build some demo apps on it.
- crispy770 11y agoI work at a Windows shop and have a few coworkers who prefer linux. I run Debian at home and occassionally need to help the non windows guys with windows specific issues. What's important is that you are able to produce as much on a non windows environment as a windows environment, and that you don't have to tap resources in order to do so. Whether you run in a vm, whether it's windows, osx, arch-linux, gnome, mint, etc is really just semantic.
- grover_hartmann 11y agoI've just noticed the Windows machine I'm supposed to be using to write code doesn't even have admin access. So I'm limited to what is installed, I can't even install anything on this machine. This is bullshit.
- mmilano 11y agoSounds like your ability to adapt is extremely low. If you're truly stuck and there's no other jobs available immediately for you, then this is a great opportunity to work on that problem. Another thing you should consider is to stop apologizing for using PHP. That should only be coming from people with a fair bit of experience with it before they decide to hate it for themselves, and followers who express that opinion because they think it's cool.
- grover_hartmann 11y agoWhy would you think that I have a problem to adapt just because I prefer to run Linux as my development environment?
- elechi 11y agoYou literally stated in your top post that "I'm a Linux person, I can't use anything else". That doesn't sound like someone who is adaptable.
- grover_hartmann 11y agoI just like Linux a lot, it's not that I can't use Windows, I just don't want to. I'm more familiar with Linux, so I'm faster with it. What's wrong about that?
- grover_hartmann 11y agoI've just asked if they use Laravel here or another framework and they mentioned they don't use any frameworks at all. Other than AngularJS, they stick to plain PHP.
- twunde 11y agoI'm working at a PHP shop that also uses Windows and we've had a python developer with a strong linux background come in and make the same transition. I'd strongly just using windows for the first month or two. Which would you rather spend time on? PHP (the code you're being paid to build/support) or getting Arch Linux set up and working seamlessly on your machine. Besides you'll probably be running your PHP in a vm anyway. Also I'd suggest checking out fiddler, which is windows freeware. PHP is a fairly sane language especially if you're using something like Laravel which is very similar to Rails. That said be prepared to run into some PHP oddities. One of them is that PHP will die with uncatchable fatal errors if there is a syntax error. PHP -l is a linter that should catch that. Also it's worth knowing that PHP is a wrapper over C, and really moved to OO in 5.3 so some build in functions will return an error code or true /false instead of throwing an exception
- grover_hartmann 11y agoThey are using raw PHP, no Laravel or any other frameworks are involved.
- grover_hartmann 11y agoI've already got Arch Linux working on a VM and I have it on full screen now, I can't notice the difference. It took me 10 minutes to set up Arch this way. And this was on my first day at this job. Why should I go back to Windows?