Programming • Page 18

Discussion in 'Technology Forum' started by Dirty Sanchez, Mar 5, 2016.

  1. Brenden

    Trusted Prestigious

    Isn't there a code tag?
  2. drewinseries

    Drew @AndrewNCaruso fb/kingwildlands

    Sorry not sure what you mean, like upload as code?
  3. Brenden

    Trusted Prestigious

    Sort of like there is an image tag you can type code so it's unformatted how you type. Maybe I'm confusing this with Slack.
  4. Jacob

    Σ of n from 1 to 36 is pretty metal Prestigious

    yes there is
    same thing as spoiler tags, just write "code" instead of "spoiler"
    Jason Tate, drewinseries and mercury like this.
  5. mercury

    modern-day offspring fanatic Supporter

    didn't know there was a code tag on here! i've never used python's csv library but i think something like this should work:
    import csv
    inFile = csv.reader(open('Path/to/file','r'))
    findValue = "UNDERHERE"
    value = ""
    for i in range(len(inFile)):
        if row[i][0] == findValue: 
            value = row[i+1][0]
    print value # this should be what you need
    sorry if I misunderstood what you're looking for (or if that doesn't work)! it's early and i haven't used python in a few years haha.
  6. drewinseries

    Drew @AndrewNCaruso fb/kingwildlands

    I ended up just using a grep command. Having bash/python speak to each other in a way that didn't mess our cron job was proving difficult, so I just used grep to get the variable I needed. I needed python to take in bash variables, use those to generate the python variable, then send it back to the bash script. grep, while a little dirty, ended up being way easier.
  7. RyanPm40

    The best goddamn bird lawyer in the world. Supporter

    Oh man, writing a spring webservice for a SOAP call when you don't have a WSDL sure is fun...
  8. noxee

    Regular Supporter

    That sounds horrifying... Is there any reason you can't put the logic of the bash script into the python script so you only have one place of execution?

    SOAP in general should be burnt in a fire, I have nightmares about it, I have no idea how you're going to manage that without a WSDL...
    RyanPm40 likes this.
  9. RyanPm40

    The best goddamn bird lawyer in the world. Supporter

    Haha yeah definitely isn't easy.. my current approach is to make an XSD from a response DTD I was provided, build the soap request manually, use JAXB to generate beans for the response XSD, and process as a rest service. Such an annoying and weird issue lol. The DTD and example requests/responses are all I have.
    noxee likes this.
  10. noxee

    Regular Supporter


    I'm glad it's you and not me. This is why I prefer JSON or proto buffer for messaging calls. I remember messing around with XSD issues because the XML parsing library some of my team members wrote handled it differently between different languages (Perl, and C#). I wanted to throw myself out the window anytime I had to deal with it.
    RyanPm40 likes this.
  11. RyanPm40 Aug 11, 2017
    (Last edited: Aug 11, 2017)

    The best goddamn bird lawyer in the world. Supporter

    Yeah I feel you on that! On my previous team, I was working with MongoDB to query JSON data and it was so useful and easy. Luckily, my weird JAXB approach seems to work out and I'm getting my SOAP responses in JSON format so I'll take it as a win :ok:.

    Jeeze, that sounds like a nightmare for you guys, heh. Gotta love working with a bunch of subsystems you have no control over ;-)
  12. drewinseries

    Drew @AndrewNCaruso fb/kingwildlands

    I could very well be missing something. I'm a Bioinformatician, not a full software dev, so my experience is kind of all over the place between biology, CS, stats, unix sys admin stuff.

    Essentially the lab had a cron job that checked a folder, created a new folder with the same name except adding the customers ID that we save in a csv file in the first folder. For some reason it wasn't appending anything and making it hard to tell what customers folder it was (containing next gen DNA sequencing data). Essentially I needed to replace an old variable that wasn't parsing right with a new one that searched the csv file for the ID, and then appended the name to the new folder. The entire script it's calling is for demultiplexing the sequencing data, so that adds a level of trickiness already.
  13. noxee

    Regular Supporter

    It sounds like you would be able to have the cron job run the python script and have that read the customer ID and create the required folder rather than having to pass arguments back and forth.
  14. drewinseries

    Drew @AndrewNCaruso fb/kingwildlands

    For friends currently employed as software engineers, what are the essential skills needed to get into a software engineering role?

    Currently I am a bioinformatician, but would like to move towards a more software dev role in the future, maybe 2-5 years. At my current job I do all my work in the terminal, doing all sorts of data management with unix and bash commands, as well as scripting in Python. Mainly adding new functions to existing pieces of software to cater towards my lab's specific needs. I also do a decent amount of stats in R.

    My CS education is 3 semesters of data structures and algorithms, C programming, and Computer Architecture.

    I get that interviews can usually trend towards recursion, big-0, and searching sorting, but in the meat of the work, can any of you get a little more specific as to what skills are essential? I'd like to devote around an hour a day to professional development for this.
  15. jorbjorb


    Probably a computer science degree.
  16. drewinseries Sep 11, 2017
    (Last edited: Sep 11, 2017)

    Drew @AndrewNCaruso fb/kingwildlands

    Not really the type of answer I was looking for, considering I work with tons of people who are devs who don't have a CS degree.

    That said, if you want to be a little more helpful, or not respond at all, which is fine too, would you recommend skills outside of what I mentioned above? Which is generally, data structures and algorithms, advanced data structures and algorithms, C programming, architecture and organization.

    This was the program if that helps:
    Computer Science (Certificate) - University of Massachusetts Boston
    RyanPm40 likes this.
  17. Brenden

    Trusted Prestigious

    Being a non programmer would any of those coding boot camps work for you?
  18. drewinseries

    Drew @AndrewNCaruso fb/kingwildlands

    I'm not really sure if those would be best for me. I spend ~20% of my time scripting in python, maybe 60% wrangling around data in bash/terminal, and the remaining 20 looking at the data/working with people my lab runs experiments for (next gen sequencing).

    My biggest project on my own was 500 line gene expression program that created a mutated gene pool starting from a single array of an amino sequence.

    I feel confident to be able to do most learning on my own given my exposure thus far, I just feel like i'm not currently where I would need to be to be competitive skill wise.
  19. danielalee12


    These are primarily focused on Web Dev. If you are interested in that sort of software (my current role) definitely read up on how the web actually works (http, databases, html css js, interacting with apis, etc). Also, build something :). You like python, set up a basic Flask app, learn about routing and what not.
  20. RyanPm40 Sep 11, 2017
    (Last edited: Sep 11, 2017)

    The best goddamn bird lawyer in the world. Supporter

    ^^ to add to that, I've found that is an AMAZING resource for a web dev. There are tons of useful "lectures" followed by interactive coding to test your skills. It's like CodeAcademy but on steroids, and it helped me learn Angular far more effectively and quickly than I would have just googling around.

    It costs money, unfortunately. I'm not quite sure how much- I have free access through my company's Pluralsight subscription (also a great resource).

    Also, before learning anything fancy, please make sure you gain familiarity in HTML5 and CSS3. It's amazing how many brilliant software devs can't structure a web page properly or follow well-known standards, and it's always a nightmare to track things down. Plz, no inline-styles, iframes, or using tables to create web layouts/positioning.

    Once again, this all pertains to whether or not you want to do web stuff :)
  21. drewinseries

    Drew @AndrewNCaruso fb/kingwildlands

    Yeah I don't do web stuff. My ideal position I want to work towards is a dev position making analysis tools for STEM.
    mercury and RyanPm40 like this.
  22. mercury

    modern-day offspring fanatic Supporter

    I've only ever done web stuff so idk how accurate this is outside of that, but building complete products end to end that are interesting to you & applicable to the jobs you'd ideally want on your own is the best way to learn IMO. Keeps you motivated more than just messing around or taking unrelated classes, but you have to come up with some good and workable ideas to start with. Trying to build a clone of part of an existing tool that you could see yourself working on might be a good place to start?
    RyanPm40 likes this.
  23. RyanPm40

    The best goddamn bird lawyer in the world. Supporter

    +1 on building things end-to-end. Companies loooove full stack developers. I get LinkedIn recruiters sending me spam about full stack developer jobs all the time.
    mercury likes this.
  24. drewinseries

    Drew @AndrewNCaruso fb/kingwildlands

    I guess I could try to work on an analysis tool or something would make my life as a bioinformatician easier, host it on a site and test with my lab's data.

    Thanks for actual constructive points yall. Not you jorbjorb.
  25. Timmiluvs

    I play video games fast -- @Timmiluvs Prestigious

    @drewinseries maybe I'm a little late but here's my take/advice.

    It's hard to say exactly what you need to get into more of a software engineering role, but the best advice I can give is to work on personal projects that have you developing tools or libraries. Even if the tool or library already exists, you can try to implement it yourself - see how close you can get to the existing stuff. If it's a library, try to write your own version that provides the same function calls as the existing one. If it's a tool, try to match the performance of an existing one.

    The more you can show that you know how to write reusable, effective code will help you get more involved in SE roles. The other thing you really need to know is documentation and architecture since you'll often have to write up solid documentation, tests, use cases, etc for your work. Kinda need to show that you understand how to build software from step 0 to step 100 so to speak.

    Finally, experiment with more than just a couple languages and try to match a language to a project. I've worked with people who stick to one or two languages and want to do every single thing in those languages. I had one person once rewrite an entire Python tool in Java simply because Java offered a single library Python didn't (FFIs could have fixed that issue but oh well) and he didn't want to use any language that wasn't those 2. Don't be one of those devs lol, if a new language is a better fit for a project, don't be afraid to learn that to use it

    If it's gonna do heavy data processing go Java, if it needs to be fast and automatic use Python, if it's gotta be embedded or low level use C or Rust, if it's doing statistical analysis use R or Julia and so on. Each language has features that make it really good for certain types of projects so learning a few different ones helps you use the best one for the job so to speak. Don't get too focused on learning every language out there, but don't be afraid to experiment with different ones so that you can apply the best language and all it's strengths to the project at hand.

    Hopefully some of that helps, it's kinda hard to give concrete advice other than "practice and write applications that interest you". It's something that kinda comes with experience, once you get more SE type roles you'll eventually get used to the thought processes that go into designing software from the ground up then making to work efficiently and effectively.